1
我有一套臨時表,我接受數據,擦洗和清理它們,然後再插入到目標表中。目標表有一個主鍵約束,我插入的是主鍵。由於截斷/刪除SQL Server主鍵違例?
我在插入之前檢查目標表中是否存在主鍵。我插入只在目標表中沒有記錄的基礎上,主鍵的缺席:
INSERT INTO Target
SELECT
primKey
, user_state
, test_state
FROM
myStagingTable3
至此,該stagingTable3只有使用下面的where子句中不存在目標表中的數據:
WHERE
primKey not in (Select primKey from Target)
不知怎的,我得到一個主鍵衝突錯誤:
消息2627,級別14,狀態1(步驟在行#失敗...) 違反主鍵的常量raint'pk1101AE'。不能插入對象「目標」
我的問題 重複鍵:
- 下可以當 關鍵,我想插入不存在於目標表中的主鍵衝突發生什麼情況?
- 可以事先刪除記錄導致主鍵被保留?如果是這樣, 可以以某種方式解決這個問題嗎?
- 別的東西?
這很明顯,我的登臺表有鑰匙,而目標表沒有。然而插入失敗。
我要補充一點,我閱讀這篇文章:http://stackoverflow.com/questions/5278588/violation-of-primary-key-constraint-sql-error刪除/截斷問題很有趣。只是不知道如何解決它。這種小菜。謝謝。 – user991945 2012-01-30 00:12:17
最有可能您的登臺表包含'primKey'的多個值。 – dasblinkenlight 2012-01-30 00:20:41
嗯,我只是檢查了......這是真的......它確實有primKey的多個值。這意味着第二個關鍵值是導致錯誤的原因,所以整個事情都保留下來並且事務被回滾。如果我不能清除重複項,我可能會在這裏查看MERGE聲明。這樣,我可以在插入後更新。總是檢查簡單的東西 – user991945 2012-01-30 01:24:35