更新对触发器的语句限制和输出子句
> 当表具有有效触发器时,使用带有语句的OUTPUT
子句就会有问题时。 UPDATE
子句需要一个目标(OUTPUT
子句),在存在触发器的情况下,它并不总是可行的。
INTO
最可靠的解决方案是从您的
语句中省略子句,并在更新完成后使用单独的OUTPUT
语句检索更新的数据。
UPDATE
SELECT
>
<code class="language-sql">-- Retrieve data before update (optional) SELECT BatchFileXml, ResponseFileXml, ProcessedDate FROM BatchReports WHERE BatchReports.BatchReportGUID = @someGuid; -- Update the table UPDATE BatchReports SET IsProcessed = 1 WHERE BatchReports.BatchReportGUID = @someGuid; -- Retrieve data after update SELECT BatchFileXml, ResponseFileXml, ProcessedDate FROM BatchReports WHERE BatchReports.BatchReportGUID = @someGuid;</code>依靠
>子句在具有触发器的表中获得“之后”值是不可靠的。在这些条件下返回的数据可能不准确,从而导致潜在的数据不一致和应用程序错误。 更新后的语句可确保您检索正确的更新值。 这种方法保证了一致且可靠的结果。>
以上是如何使用阻止使用 OUTPUT 子句的触发器从表中检索更新的数据?的详细内容。更多信息请关注PHP中文网其他相关文章!