【发布时间】:2012-02-08 17:58:29
【问题描述】:
我有一个 INSERT INTO 可以很好地使用参数作为常量:
INSERT INTO FinalValidityCodes
(tblReceivedSamplersID, Substudy, Location, FinalValidityCode, DateTimeProcessed)
SELECT ID, true, 'I', 0, now()
FROM tblReceivedSamplers
WHERE (SampleID = ?)
这将影响 1 行(如预期的那样)
但是,如果我将查询更改为使用参数,它将允许它运行,但不会影响任何行。
INSERT INTO FinalValidityCodes
(tblReceivedSamplersID, Substudy, Location, FinalValidityCode, DateTimeProcessed)
SELECT ID, ?, ?, ?, ?
FROM tblReceivedSamplers
WHERE (SampleID = ?)
有什么区别,为什么当我使用参数时,插入似乎会失败?
编辑:
SampleID 是文本数据类型。
【问题讨论】:
-
也许我误解了语法。我将通过这个例子:decoding.wordpress.com/2008/10/11/…。在他的查询中,
INSERT INTO Orders (customer_id, order_date) SELECT id, GETDATE() FROM Customers WHERE username = 'john.smith'GETDATE() 似乎不需要成为 select 语句中的列,而是插入到orders.order_date中。 -
我认为其中一个链接确实有效,但思考它为什么有效是非常重要的。我更喜欢你的方式。值的来源以及它们在查询中的作用更加清晰。