【发布时间】:2012-03-23 04:31:55
【问题描述】:
我已经为此苦恼了几个小时了......这就是发生的事情:
我运行这个语句
选择状态 来自 [dbo].[TMP_TEST_CALL_LIST] 其中身份 = '659303186000000000'
我得到以下结果(单行):
'是'
然后我运行这个语句
更新 [dbo].[TMP_TEST_CALL_LIST] 设置状态='Z' 其中身份 = '659303186000000000'
我明白了!!!:
(受影响的 1 行)
(受影响的 1 行)
好像两个语句会被执行!
但它变得更糟......即使我这样运行它:
更新 [dbo].[TMP_TEST_CALL_LIST] 设置状态='Z' 其中身份='659303186000000000'和状态='Y'
它会给我同样的“双重”结果。如果我使用与任何记录都不匹配的 WHERE 子句运行它,它会告诉我 0 行受影响...两次。
(更)令人毛骨悚然的事情是,这发生在数据库中的某些表上,而不是其他表上。我无法弄清楚这些表之间的区别是什么。
H E L P ! ! !
谢谢。
注意:这是 SQL Server 2008 R2
【问题讨论】:
-
检查表上是否有更新触发器。此外,如果您打开了显示执行计划,则会产生一个额外的行集,其中包含信息被发送到客户端
标签: sql-server sql-server-2008-r2 dbal