我有一个工具,它:SQL Server是否可能报告受影响的行数不正确?
- 抓住SQL命令从一个纯文本文件
- 将同时执行这对位于同一台机器
- 上的SQL Server,如果一个UPDATE命令影响零行报告错误(在这个文件中永远不应该有一个不影响记录的更新命令,因此它被记录为错误)
该实用程序还记录任何失败的命令。
尽管我的实用程序报告没有失败的更新并且没有失败的命令,但数据库中的最终数据似乎是错误/陈旧的。
我知道第一个也是最明显的罪魁祸首是我在编程实用程序本身时出现了某种逻辑或运行时错误,但我只需要知道它是THEORETICALLY有可能报告至少有一行是受影响但尚未适用变更。
如果有帮助,该实用程序似乎总是正确执行相同数量的命令,并且最终的陈旧/错误数据总是相同的,即它似乎正确地执行了一定数量的成功查询数据库的命令,然后失败。
谢谢。
编辑:
我也应该注意到,这种效用展出跨越4个不同生产的每一个服务器这种行为有自己专用的本地数据库服务器,而这些都是仡机器与每一个都是8-16 GB RAM由专业系统管理员管理。
AFAIK,没有。听起来像一个实用程序逻辑问题。 –
SQL Server有可能更新数据中实际没有更改的行。例如,设置列值等于其当前值。表格上的触发器也会影响修改了多少行。 – Yuck
你在哪里检查@@ ROWCOUNT?您可以运行分析器来查看在更新命令和@@ ROWCOUNT检查之间是否发布了任何语句(包括那些可能来自触发器或发送更新命令的程序)。它发生在多个服务器上的事实无疑增加了“逻辑问题”论证的重要性。 –