Dies ist meine Situation:SQL Server neue Spalte zu aktualisieren, basierend auf einer anderen Spalte aus einer anderen Tabelle
Hinweis: Spalte (NUMBER_IDENTITY) auf 2 Tabellen haben den gleichen Wert aber die 2-Tabelle keine Beziehung zueinander haben (dies ist meine Wahl für meine Situation)
Frühe Datenbank Zustand
- ich hatte Tabelle
CONTRACTS
(ID, NUMBER_IDENTITY, BENUTZER_ID) - Ich hatte Tabelle
SUB_CONTRACTS
(ID, NUMBER_IDENTITY)
JETZT
Ich habe Tabelle CONTRACTS
(ID, NUMBER_IDENTITY, BENUTZER_ID)
ich hinzufügen neue Spalte in SUB_CONTRACTS
(ID, NUMBER_IDENTITY , USER_ID)
Mein Problem
Ich sollte USER_ID
Spalte in SUB_CONTRACTS
mit dem gleichen Wert aktualisieren, der in CONTRACTS
existiert. Ich kann dieses Update tun, weil NUMBER_IDENTITY
Spalte der beiden Tabellen identisch ist. So SUB_CONTRACT
ist komplementär von CONTRACT
.
Frage
Wie eine Funktion, Prozedur oder Abfrage in SQL Server erstellen, die mein Problem lösen? Kann ich eine Funktion erstellen, die alle Spalten aktualisiert, die diese Bedingung erfüllen? Ich kann in Mini-Lösung mit Abfrage lösen, aber ich kann nicht alle diese Mini-Abfrage beitreten, um mein Problem zu lösen.
Freie Hand, aber ein einfaches Update + Join a'la 'UPDATE sc SET sc.user_id = c.user_id VON sub_contracts sc JOIN Verträge c ON sc.number_identity = c.number_identity sollte es tun. Frage ist jedoch, warum speichern Sie die Benutzer-ID an einem zusätzlichen Ort, wenn es immer so sein soll, wie auf dem Vertrag? –
@JoachimIsaksson, Weil ich einige Informationen von sub_contracts in diffrent Tabelle behalten sollte –