我有一個SQL Server 2005數據庫中的表,它與其他表有很多連接。每當基表得到重複的條目時,我們編寫了一個存儲過程,用於從所有連接的表中移動數據,然後刪除重複的條目。合併使用外鍵進行連接的行
問題是,隨着項目不斷增長,連接表的數量開始變得難以管理,有時開發人員忘記更新存儲過程,然後合併過程將失敗。
在TSQL中是否有更流暢的合併功能?我在想,因爲所有的表都與foreign keys
連接,所以需要更新/插入的表很可能只是通過讀取表連接來計算。
表結構看起來是這樣的:
Main table
------------------------
mainid (PK) | datacolumns...
Sub table 1:
------------------------
subid1 (PK) | mainid (FK) | datacolumns...
Sub table 2:
------------------------
subid2 (PK) | mainid (FK) | datacolumns...
Sub table 3:
------------------------
subid3 (PK) | datacolumns...
Connection table between "Main table" and "Sub table 3":
------------------------
mainid (FK) | subid3 (FK)
現在我有Main table
兩行,可能會或可能不會有Sub table 1
和Connection table
子條目。
Sub table 1
應始終更新爲新的mainid
。 Sub table 2
和Connection table
具有唯一的密鑰限制,因此如果條目尚不存在,則只能使用新的mainid
進行更新。
由於我們談論超過20個表(以及不斷增長),每個表都有自己的限制,使得條目具有唯一性,並且應該/不應該複製數據,如果它們不存在在表中根據唯一鍵。
任何幫助表示讚賞!
謝謝,但我正在尋找合併數據,而不是刪除它。 – Jan