2014-09-22 131 views
0

我調試一個存儲過程執行時,給了我以下錯誤:不能插入表中重複鍵行具有唯一索引

2601: Cannot insert duplicate key row in object 'dbo.TABLEXYZ' with unique index 'ABCKEY_PRIMARY'. The duplicate key value is (abc123). 

沒有通過我的存儲過程被插入dbo.TABLEXYZ數據執行,我也看看是否有更新dbo.TABLEXYZ的觸發器,但沒有。有關如何調試複雜存儲的任何提示?我應該在哪裏找到找到罪魁禍首的人?

+2

從SQL Profiler開始,查找SP:StatementStarting和SP:StatementComplete事件。如果這是一個實時系統,那麼您需要注意這樣做對性能的影響。 – Laurence 2014-09-22 20:22:21

+0

當您執行該過程並獲取此錯誤消息時,它應該告訴您行號和過程名稱。 – 2014-09-22 20:30:57

回答

0

這可能是其中一個sub-sprocs發生了錯誤。這裏是我的方法:

  1. 打開執行計劃(查詢菜單>包括實際的執行計劃)
  2. 運行存儲過程。當它出錯時,您將有額外的選項卡調用執行計劃
  3. 向下滾動到最後一個執行計劃。這可能是導致錯誤的陳述。提供了聲明的文本。

現在掃描您的數據庫以查看該語句的位置。

相關問題