我有一個每晚從SS400數據庫系統導出TON數據的SSIS過程。由於AS400 DB軟件中存在錯誤,因此將重複項密鑰插入數據表中。每次將新的副本添加到AS400表時,它都會導致我晚上的導出過程中斷。這個問題已經從滋擾變成了問題。如何在準特有數據密鑰上創建主密鑰?
我需要的是有一個選項,只插入唯一的數據。如果有重複,請選擇第一個遇到的重複行的行。有沒有SQL語法可以幫助我做到這一點?我知道DISTINCT ROW子句,但在我的情況下不起作用,因爲對於大多數違規記錄,除組成PK的字段外,整個數據是非唯一的。
就我而言,我的主鍵在我的SQL Server數據庫緩存中保持唯一性,而不是擁有數據的完整快照更爲重要。有什麼我可以做的強制這個約束出口在SSIS/SQL Server與崩潰的過程?
編輯
讓我進一步明確了我的要求。我需要的是確保導出的SQL Server表中的數據與維護AS400數據表的數據保持相同的密鑰。換句話說,創建唯一的行計數標識符將不起作用,也不會在沒有主鍵的情況下插入所有數據。
如果AS400軟件中的錯誤允許錯誤的重複PK,我想要忽略這些行,或者最好只選擇具有重複鍵的行中的一個,但不能同時選擇這兩個行。
該SELECT語句可能發生在我的SSIS項目中的SELECT語句中,該語句通過ODBC連接連接到大型機。
我懷疑我的問題可能沒有「簡單」解決方案。然而,我希望我錯了。
我應該只檢查與PK關聯的列嗎?當我執行任務時,我仍然受到PK侵犯。 – RLH
另外,假設我確實有轉換,我會做什麼不同?在我的情況下,我有一個轉換,從每個文本字段的末尾截斷填充間距。 – RLH
這似乎是正確的答案,但我仍然得到PK Vialation錯誤。我進行了三重檢查 - 我沒有選中所有的PK字段(在這種情況下,有8個字段),並且在SORT轉換之後放置了我的轉換。我可以錯過任何東西嗎? – RLH