當我試圖選擇信息從一個數據庫複製到另一個使用SSIS。我直接從舊的SSMS中編寫新表格,所以它們應該是相同的。它們被設置爲[Col1],[Col2],[Col3],[Col4],[Col5],並且具有[Col1]和[Col2]的聚類PK。違反PRIMARY KEY約束插入空表
我開始設立SSIS與OLEDB源與SELECT語句
SELECT [Col1], [Col2], [Col3], [Col4], [Col5] FROM [DBO].[dbo].[table] WHERE [Col5] LIKE 'AB%'
那麼SQL Server目標數據流任務。我不斷收到主鍵約束錯誤,所以我將其更改爲OLEDB源和文件目標以進行錯誤處理。 615911行被寫入到數據庫和一個額外的49970到該文件。
我找不到拒絕的行之間的共同點。它們都是唯一的,因爲它們必須是源表上的PK約束與目標的PK約束相同。我已經檢查過,並且目標表中沒有任何內容,但是當我嘗試從錯誤輸出文件複製到目標表時,仍然出現PK錯誤。據我所知,目標表中不存在甚至具有相同[Col1]或[Col2]的條目,但其他行確實有重複的[Col1]或[Col2]。
有什麼建議嗎?
你是絕對肯定的目標表中的PK是兩列,而不是隻是其中之一? –
再次檢查兩個表格的模式是否相同。 – chris544
修改您的目的地表格。刪除主鍵。運行包。您的所有數據都應該加載。然後運行一個查詢,找到重複的'選擇D.Col1,D.Col2 FROM dbo.Table爲d GROUP BY D.Col1,D.Col2 HAVING COUNT(1)> 1;'這是否查詢得到什麼?如果是這樣,那麼你有你的重複。如果沒有,那麼你的主鍵不是你指定的。 – billinkc