我使用 OUTPUT
查询执行 UPDATE
:
UPDATE BatchReports
SET IsProcessed = 1
OUTPUT inserted.BatchFileXml, inserted.ResponseFileXml, deleted.ProcessedDate
WHERE BatchReports.BatchReportGUID = @someGuid
这个语句很好; 直到在表上定义了触发器。然后我的 UPDATE
语句将得到错误 334:
如果语句包含没有 INTO 子句的 OUTPUT 子句,则 DML 语句的目标表“ BatchReports”不能具有任何启用的触发器
现在,SQLServer 团队在一篇博客文章中解释了这个问题—— 带 OUTPUT 子句的 UPDATE-Triggers-和 SQLMoreResults:
错误消息是不言而喻的
他们还提供了解决方案:
应用程序已更改为使用 INTO 子句
除了我不能理解整篇博客文章的含义。
那么让我来问问我的问题: 我应该把我的 UPDATE
改成什么样才能正常工作?