簡體   English   中英

SQL Server:更新同一表中具有依賴項的行

[英]SQL Server: Updating rows with dependencies in the same table

這里有CSBaumkontakt表,在這個表中我已經聯系了人員和公司。 CSBaumkontakt是一個像這樣的樹結構:

[+] master company (Root)
  [+] company (Dad)
    [+] contact person 

聯系人的公司( Dad )與公司的DadPubIndexRelPubIndex連接。 並且僅當公司的DadRoot與聯系人的Root相同時,該應用程序才能正常運行。 這意味着聯系人的RootPubIndex必須與公司的DadPubindexRootPubindex相同。 但這並非總是如此。

更改請參見下圖:

聯系人

[RelPubIndex] [9FC6CD387AE91B46A471E1B82963E36A]
[RooPubIndex] [F7BC36A0-AD4F-49D5-B4FC-AD529C7EA738]
[DadPubIndex] [2143640C-3ABF-440C-B094-2128F4495874]
[class] [contact person]

聯系人的公司

[RelPubIndex] [2143640C-3ABF-440C-B094-2128F4495874]  
[RootPubIndex] [D66035CB-B7AD-4D54-9FC7-AE6E7F32662D]  
[DadPubIndex] [D66035CB-B7AD-4D54-9FC7-AE6E7F32662D]
[class] [company]

更改前的CSBaumkontakt

更改 ,它看起來像這樣:

聯系人

[RelPubIndex] [9FC6CD387AE91B46A471E1B82963E36A]
[RooPubIndex] [D66035CB-B7AD-4D54-9FC7-AE6E7F32662D]
[DadPubIndex] [2143640C-3ABF-440C-B094-2128F4495874]
[class] [contact person]

聯系人的公司

[RelPubIndex] [2143640C-3ABF-440C-B094-2128F4495874]  
[RootPubIndex] [D66035CB-B7AD-4D54-9FC7-AE6E7F32662D]  
[DadPubIndex] [D66035CB-B7AD-4D54-9FC7-AE6E7F32662D]
[class] [company]

在此處輸入圖片說明

現在我需要一個UPDATE腳本設置RooPubIndex每個聯系人到的DadPubindex / RootPubIndex (如果是相同的,但它通常應該是這樣)從其公司。

我有點不知所措,如何連接同一表中的那些行以用所需的值UPDATE記錄。 我該怎么做?

我想我已經解決了。 仍然需要檢查數據,但似乎可行。

update csbaum1 set csbaum1.rootpubindex = csbaum2.DadPubIndex  
from CSBaumKontakt as csbaum1  
inner join CSBaumKontakt as csbaum2 
on csbaum1.DadPubIndex = csbaum2.RelPubIndex  
where csbaum1.Klasse = 'contact person'  
and csbaum1.RootPubIndex <> csbaum2.DadPubIndex  
and csbaum2.RootPubIndex = csbaum2.dadpubindex

謝謝閱讀。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM