2

我有以下查询应该更新 716 条记录:

USE db1
GO

UPDATE SAMP
SET flag1 = 'F', flag2 = 'F'

FROM samp INNER JOIN result ON samp.samp_num = result.samp_num
WHERE result.status != 'X'
    AND result.name = 'compound'
    AND result.alias = '1313'
    AND sample.standard = 'F'
    AND sample.flag2 = 'T';

但是,当从 SSMS 中的查询窗口在 SQL Server 2005 数据库上运行此查询时,我收到以下三个消息:

716 row(s) affected
10814 row(s) affected
716 row(s) affected

那么为什么我会收到 3 条消息(而不是单个更新语句的正常消息)以及 10814 可能指的是什么?这是我需要更新的生产数据库,所以我不想在不知道答案的情况下提交这些更改 :-) 谢谢。

4

3 回答 3

10

这可能是由 [samp] 表上的触发器引起的。如果你去 Query -> Query Options -> Execution -> Advanced 并检查 SET STATISTICS IO,当你运行查询时,你会看到还有哪些表正在更新。

于 2013-07-09T20:06:23.450 回答
1

您还可以使用 SSMS 中的对象浏览器来查找触发器。打开表节点,找到表,打开表节点,然后打开触发器。这种方法的好处是您可以将触发器编写到新的查询窗口并查看触发器正在做什么。

于 2013-07-10T06:18:12.520 回答
-1

这可能是因为您的表中有一个触发器。这个命令会告诉你发生了什么。

设置统计 IO { ON | 离开 }

https://msdn.microsoft.com/en-us/library/ms184361.aspx

于 2015-07-07T17:12:42.740 回答