我試圖從TableA批量插入TableB,這將(如果我能得到它的工作)然後是一個大規模UPSERT的一部分在30/60分鐘週期使用2008R2 。SQL - 避免批處理插入重複主鍵
TableB有一個反對它的主鍵&一個唯一索引。
我不能丟棄&在int上重新創建IDENTITY,因爲所涉及的表是第三方應用程序的一部分&添加IDENTITY將導致應用程序出現問題。
我希望能夠走下使用MAX的路線(即使有可能帶來的問題,但總體來說,這應該不會導致很多問題,如果在環境中),但我遇到了問題使用下面的表格中的唯一索引;
DECLARE @V int
SELECT @V = MAX(PRIMARY_KEY) from TABLEB
INSERT INTO TABLEB ([PRIMARY_KEY],[COL1],[COL2],[COL3])
SELECT (ROW_NUMBER() OVER (ORDER BY COL1 ASC)) + @V As PRIMARY_KEY,COL1,COL2,COL3
FROM TABLEA
其他想法我是使用其舉行的最後一次使用int值的表,這將通過一個存儲過程&更新存儲過程的輸出將是下一個可用的....我不認爲這雖然考慮到了我實際上想要達到的目標,但它們還是可以工作的。
該計劃的最後一場比賽是在六個合併報表中包含所有(因爲這隻有大約1%),但是最初如果我至少能夠做到這一點,那將是一個開始。
任何意見或建議將是最受歡迎的。
感謝
鮑勃
@AndriyM我沒有嘗試,但很長一段時間的瀏覽器第一次海報的情況下(與報名昨天下午),所以在某些時候不能提供答案,直到明天。感謝整潔,也不確定我第二次如何成功。 – IchBinDicky