0
我有一個問題,即我的當前腳本正確地分配給每個參考實體。SQL Server:將varchar生成爲具有一些條件的數字
update dbo.expozitura
set reference_subjektu = replicate('0', 8-len(rn))+b.rn
from dbo.expozitura a
INNER JOIN
(
select dbo.expozitura.cislo_subjektu , cast(ROW_NUMBER() OVER (order by cislo_subjektu) as varchar) as rn
from dbo.expozitura
)b ON b.cislo_subjektu = a.cislo_subjektu
select * from dbo.expozitura;
OUTPUT:(步驟1)
cislo_subjektu reference_subjektu organizace adresa_ulice psc ico
1 00000001 2 7774588
2 00000002 0 Linkoln 50 7774588
3 00000003 0 403 31 729544866
4 00000004 0 8544569
5 00000005 0 Linkoln 66 578 99 8542155
6 00000006 0 558 41 8542155
第2步:
我需要一個更聲明,如果有任何 「dbo.expozitura」 用相同的 「ICO」 。因此,根據具體的「ico」,將他的第一個參考文獻分配給所有相同的參考文獻。這樣會更多。
OUTPUT:
如果一切是正確的,這應該是最後的結果。
cislo_subjektu reference_subjektu organizace adresa_ulice psc ico
1 00000001 2 7774588
2 00000001 0 Linkoln 50 7774588
3 00000003 0 403 31 729544866
4 00000004 0 8544569
5 00000005 0 Linkoln 66 578 99 8542155
6 00000005 0 558 41 8542155
請幫我解決我的問題。
你有任何的下一個想法如何解決呢? –
Msg 2627,Level 14,State 1,Line 1 違反唯一鍵約束'UQ__expozitu__780A73EA03B2F7CC'。不能在對象'dbo.expozitura'中插入重複鍵。重複鍵值是(00000001)。 該聲明已被終止。 –
@RadekTarant如果你的表在reference_subjektu列上有一個唯一的約束,那麼你的問題是不可能的。 – Laurence