我有一个实用程序:
该实用程序还会记录任何失败的命令。
然而,数据库中的最终数据似乎是错误的/陈旧的,即使我的实用程序报告没有失败的更新和失败的命令也是如此。
我知道第一个也是最明显的罪魁祸首是我对实用程序本身的编程中的某种逻辑或运行时错误,但我只需要知道 SQL Server 理论上可能报告至少一行受到影响并且尚未应用更改。
如果有帮助,该实用程序似乎总是正确地执行相同数量的命令,并且最终的陈旧/错误数据总是相同的,即它似乎正确地执行了一定数量的命令,这些命令正在对数据库成功查询,然后失败。
谢谢。
编辑:
我还应该注意到,该实用程序在 4 个不同的生产服务器上表现出这种行为,每个生产服务器都有自己专用的本地数据库服务器,而且这些机器都是由专业系统管理员管理的强大机器,每台机器都有 8-16 GB RAM。
最佳答案
根据你所说的...
如果您触发了触发器,“xx 行受影响”可能会产生误导。您可能正在读取触发器的计数。如果是这样,将 SET NOCOUNT ON 添加到触发器
或者,数据相同,因此您实际上使用相同的值进行虚拟更新。例如,添加一个 WHERE 子句来测试差异。
https://stackoverflow.com/questions/7124994/