2016-08-01 26 views
1

Ich bin wahrscheinlich übertrieben dies so hier geht.Muss eine Spalte basierend auf einer anderen Spalte in einer anderen Tabelle zu füllen

Ich habe zwei Tabellen. Die erste, die ich die CorporationId basierend auf seinem TokenId-Wert auffüllen möchte.

dbo.UsersAccountLink:

enter image description here

Und die Tabelle, die ich den Wert von erhalten möchten:

Company.Token:

enter image description here

ist hier, was ich aber es ist nicht richtig eingestellt, damit es nicht läuft. Ich bin mir nicht sicher, wie dies zu tun:

INSERT INTO dbo.UsersAccountLink.CorporationId 
Select CorporationId 
From Company.Token 
Where Company.Token.TokenId = dbo.UsersAccountLink.TokenId 

I dbo.UsersAccountLink.CorporationId mit dem Wert in Company.Token.CorporationId basierend auf dem TokenID auffüllen möchten.

Hilfe ?!

+0

Seien Sie hier vorsichtig sein. Es sieht so aus, als ob Sie wahrscheinlich uniqueidentifiers als Ihre Primärschlüssel überall verwenden. Dies kann zu einer sehr schlechten Leistung führen, wenn diese Primärschlüssel auch der Clustered-Index sind. Die Fragmentierung von Guids wird mit weniger als 1000 Zeilen mehr als 99,99% betragen. Sie benötigen entweder eine bessere Clusterspalte oder Sie müssen Ihre Indizes ständig defragmentieren. –

Antwort

3

Sieht aus wie Sie im Vergleich zu Insert aktualisieren möchten ...

update dbo.UsersAccountLink 
set CorporationID = 
(Select CorporationId 
From Company.Token 
Where Company.Token.TokenId = dbo.UsersAccountLink.TokenId) 
+0

Das macht Sinn und es hat perfekt funktioniert. Tyvm !! – ErocM

+1

Kein Schweiß @ErocM und Roll Tide – scsimon

+0

Roll Tide !!! :) – ErocM

Verwandte Themen