我有一张表,我需要用ticketnumbers更新一列。 这些票证编号在另一个表中创建,它是一个标识字段。
此代码不起作用。为什么呢?
UPDATE sheet10
SET [TicketNummer] = (INSERT INTO ticketnummers (AangemaaktOp, aangemaaktdoor,verwijderd,afgewezen) VALUES ('2014-01-20 15:00:00',100,0,0) SELECT SCOPE_IDENTITY() )
where isnumeric([TicketNummer]) = 0
我做错了什么?
RG。 埃里克
答案 0 :(得分:2)
如果UPDATE有行匹配,可组合DML应该允许你INSERT
...然而
总之,即使我从未真正按照设计问题这样做,可能
UPDATE
sheet10
SET
TicketNummer = (
SELECT
*
FROM
(
INSERT INTO ticketnummers (AangemaaktOp, aangemaaktdoor,verwijderd,afgewezen)
OUTPUT INSERTED.IDColumn
VALUES ('2014-01-20 15:00:00', 100, 0, 0)
) X
)
WHERE
ISNULL(TicketNummer, 0) = 0;
答案 1 :(得分:1)
您不能以这种方式使用INSERT。它必须自己声明。
基本上你必须分两步执行此操作:
INSERT INTO ticketnummers (AangemaaktOp, aangemaaktdoor,verwijderd,afgewezen) VALUES ('2014-01-20 15:00:00',100,0,0);
UPDATE sheet10
SET [TicketNummer] = SCOPE_IDENTITY()
where ISNULL([TicketNummer], 0) = 0