2012-11-21 44 views
1

我想執行一個簡單的DELETE語句是這樣的:SQL Server如何顯示DELETE語句的詳細信息

DELETE 
FROM table 
WHERE table.value = 123 

,我期待從表中刪除512行,因爲那些512行具有價值123

但是,運行刪除語句後顯示5行「xxx rows affected」。

  • 最後兩行是相同的,「512行受影響」,這是預期的。
  • 第一個「512行受影響」是實際刪除。
  • 第二個「受影響的512行」是一個觸發器(唯一的刪除觸發器),將512行插入到table_AUDIT中。

「xxx rows affected」的前3行怎麼樣?

我不知道哪些表會受到影響,所以我不知道如何使用OUTPUT(Google搜索)來確定哪些行/表受到影響。

我的問題是:如何顯示刪除行的詳細信息?插入無意義的「123行受到影響」,我喜歡看哪些表刪除哪些表。

+1

歡迎來到MSSQL世界。所有這些「受影響」的文件都是由任何執行的觸發器/存儲過程觸及的文件。如果表中不超過1個觸發器,請檢查與table_AUDIT關聯的任何觸發器。 – jachguate

+0

謝謝。沒有與table_AUDIT表關聯的觸發器。 – Andrew

回答

1

你可以做的最好的是得到一個包含觸發器的查詢計劃。哪些行留給你的智能 - 查詢計劃通常不提供這些信息。

+0

感謝您的回覆。但是,我查了查詢計劃,並不明白查詢優化技巧如何與我的問題相關。請更加明確。謝謝。 – Andrew

+0

它不是。它仍然是你能做的最好的。簡單的那樣 - 無論您希望如何,都無法獲得更多信息。 – TomTom

+0

感謝您的澄清。我試過查詢計劃,它確實顯示有關查詢的有用信息。不過,正如你前面提到的那樣,這是一個估計。 – Andrew