我有我的這個腳本的存儲過程的一個現實問題PRIMARY KEY約束錯誤的衝突:如何應對
INSERT INTO #tr_TxnDetails
SELECT
b.pid,
b.etc
FROM tbl_SomeTableA as a
JOIN tbl_SomeTableB as b ON a.etc = b.etc
AND a.SomeColumn = b.SomeColumn
-- This is throwing error: Violation of PRIMARY KEY constraint. Cannot insert duplicate key in object 'dbo.tr_TxnDetails'.
INSERT INTO tr_TxnDetails
([id], [etc])
SELECT a.[id],
a.[etc]
FROM #tr_TxnDetails as a
WHERE not exists (select 1 from tr_TxnDetails as b where a.[id] = b.[id]);
如何確保在INSERT INTO
聲明時tr_TxnDetails
它不插入一行具有相同的主鍵:pid
?
這是可能的重複http://stackoverflow.com/questions/2136273/primary-key-duplicate-record-bypass-to-next-insert – Anri
你爲什麼試圖插入一個重複鍵的行?這在邏輯上是否有意義?不要只是沉默錯誤 - 消除潛在的問題。 – usr
@usr - xybrek沒有試圖插入一個重複鍵的行,他試圖避免這樣做 –