2011-05-10 34 views
5

我有一個SQL查詢更新一個表中的ID基於另一個表中的記錄的聯接。問題在於,出於某種原因,我不明白「更新」查詢實際上是將查詢結果顯示在SSMS中的網格上。這導致我的機器上出現「內存不足異常」,因爲它試圖在網格中顯示100萬以上的結果。這很有趣,因爲查詢不應顯示除更新的記錄數量之外的任何內容。任何想法我做錯了什麼?MSSQL更新查詢顯示結果到網格

這裏是我的查詢的示例:

UPDATE MyDatabase.dbo.Notes 
    SET ParentID = A.ID 
    FROM MyDatabase.dbo.Notes N 
    JOIN MyDatabase.dbo.Actions A ON N.OldID = A.OldID 
WHERE A.OldID IS NOT NULL 
    AND N.OldID IS NOT NULL 
    AND N.ParentID IS NULL 
+8

更新表上是否有更新觸發器?但我不確定你能否在一個觸發器中「輸出」一個SELECT結果集。只是猜測。 – MaxiWheat 2011-05-10 13:52:51

+0

就是這樣。顯然有一個更新觸發器,其中包含select語句。我禁用了觸發器,查詢立即運行。不能相信我沒有想到這一點。謝謝你的幫助! – Matt 2011-05-10 13:58:47

+0

不妨添加一個答案並將其標記爲答案@Matt,社區知道這個問題的方式已經解決了!乾杯 – 2011-05-13 19:04:32

回答

1

在你的問題中列出的代碼本身不會引起任何輸出到電網中SSMS

  • 仔細檢查你粘貼實際上是您的確切查詢
    • 有時額外的代碼可以隱藏在摺疊之下
  • 檢查任何表上的觸發器參與
1

顯然有一個更新觸發器在它的SELECT語句。我禁用了觸發器,查詢立即運行。