![](/img/trans.png)
[英]SQL Server : problem updating a counter type column in a table. All rows get the same value and they should not
[英]SQL Server: Updating rows with dependencies in the same table
这里有CSBaumkontakt
表,在这个表中我已经联系了人员和公司。 CSBaumkontakt
是一个像这样的树结构:
[+] master company (Root)
[+] company (Dad)
[+] contact person
联系人的公司( Dad
)与公司的DadPubIndex
和RelPubIndex
连接。 并且仅当公司的Dad
和Root
与联系人的Root
相同时,该应用程序才能正常运行。 这意味着联系人的RootPubIndex
必须与公司的DadPubindex
和RootPubindex
相同。 但这并非总是如此。
更改前请参见下图:
联系人
[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]
更改后 ,它看起来像这样:
联系人
[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.