在Sql Server中为具有触发器的表更新行的Id

时间:2012-11-03 16:01:27

标签: sql-server

这里有一个很好的答案:https://stackoverflow.com/a/1610530/630169 但是,如果更新的表具有不起作用的触发器,则SQL Server会产生错误:如果语句包含不带INTO子句的OUTPUT子句,则DML语句的目标表'my_table'不能具有任何已启用的触发器。如果表有触发器该怎么办?

1 个答案:

答案 0 :(得分:0)

找到答案,需要使用文档中提到的INTO选项:http://msdn.microsoft.com/en-us/library/ms177564.aspx,例如:

DECLARE @MyTableVar TABLE
(
    id INT
);
UPDATE my_table 
SET column = value
OUTPUT INSERTED.primaryId INTO @MyTableVar
WHERE idColumn = idValue;
SELECT * FROM @MyTableVar