我有一个INSERT INTO的正常工作与参数为常数:INSERT INTO与MS-访问子查询和参数不工作
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是一个文本数据类型。
也许我错误地解释了语法。我要通过这个例子:http://decoding.wordpress.com/2008/10/11/sql-server-insert-into-with-subquery/。这似乎是在他的查询INSERT INTO Orders(customer_id,order_date)SELECT id,GETDATE()FROM Customers WHERE username ='john.smith'' GETDATE()不需要是select语句中的列,而是插入'orders.order_date'。 – Brad 2012-02-08 18:20:52
我认为这个链接的作用确实有效,但是想想它为什么起作用是非常有意义的。我更喜欢你的方式。数值来自哪里以及它们在查询中的作用更清晰。 – Brad 2012-02-08 20:22:14