背景SQL Server存儲過程鏈接和取消鏈接記錄,還遞歸添加鏈接?
我有一個表Person
代表人羣:
PersonID | FirstName | LastName
1 | John | Smith
2 | Jane | Smith
3 | Gary | Smith
4 | Susan | Smith
...和表SiblingLink
代表兄弟姐妹(人與人之間的鏈接):
Person1ID | Person2ID
1 | 2
2 | 1
一個存儲稱爲AddSibling
的過程需要2個參數(@Person1
和@Person2
)並且執行INSERT
爲Person1 -> Person2
和Person2 -> Person1
。
當只有2個兄弟姐妹時(這個例子中,約翰和簡現在通過這張表連接在一起),這非常棒。刪除也很簡單。
問題
不過,我需要擴大這個過程來處理這裏Gary (3)
和Jane (2)
被鏈接的情況下,因爲現在因爲John (1)
是Jane (2)
兄弟,他需要也成爲Gary (3)
同級。
Person1ID | Person2ID
1 | 2
2 | 1
==== NEW RECORDS ========
3 | 2
2 | 3
1 | 3
3 | 1
問題
什麼是存儲過程的正確方法按照這個遞歸添加的兄弟姐妹的兄弟姐妹?
+1米歇爾奧巴馬記錄 – Brandon