2013-07-09 97 views
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'; 

然而,當此查詢是一個SQL Server 2005數據庫從一個查詢窗口在SSMS跑,我得到以下三個信息:

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

那麼,爲什麼我會得到3條消息(而不是通常的一個單個更新語句)和什麼是10814可能是指什麼?這是我需要更新的生產數據庫,所以我不想在不知道答案的情況下提交這些更改:-)謝謝。

回答

8

這可能是由[samp]表上的觸發器引起的。如果您轉到查詢 - >查詢選項 - >執行 - >高級並檢查SET STATISTICS IO,您將看到在運行查詢時哪些其他表正在更新。

+0

謝謝你,這確實解釋了發生了什麼。我沒有設計數據庫,所以不知道桌子上有觸發器。 :-) –

1

您還可以使用SSMS中的對象瀏覽器來查找觸發器。打開Tables Node,找到表格,打開表格節點,然後打開觸發器。這種方法的好處在於,您可以將觸發器編寫到新的查詢窗口,並查看觸發器的功能。