2016-05-03 17 views
-1

Ich habe zwei TabellenSQL Server 2012: Kopieren Sie eine Spalte aus einer Tabelle in eine andere

TABLE1

skillid skillname 
1   PM 
2   SM 

TABLE2

name skillid skillname 
A  1  
B  2 

Ich möchte die skillname von table1 bekommen, während Werte einfügen in table2

+1

Was haben Sie bisher versucht, bitte teilen Sie Ihre Frage? –

+2

Dies ist redundant - Sie sollten den 'skillname' in' Table2' nicht speichern, sondern stattdessen 'Table1' verwenden, falls erforderlich. Relationales Design dreht sich nur darum, Redundanzen zu vermeiden. –

+0

Was machen Sie, wenn jemand die Skillnamen in Tabelle 1 aktualisiert? –

Antwort

1

Verwenden Sie die folgende Abfrage

UPDATE T2 
SET T2.skillname = T1.skillname 
FROM TABLE2 T2 
    INNER JOIN TABLE1 TI ON T1.skillid = T2.skillid 
+0

ist es möglich, dies während der Einfügung selbst zu tun – user3853596

+0

@ user3853596 Erstellen Sie einen SQL-Trigger, um Ereignisse einzufangen, in Ihrem Trigger hinzufügen Implementierung zum Einfügen neuer Daten in eine andere Datenbanktabelle – Sherlock

+0

Ja, PLZ teilen Sie Ihre einfügen Skript. –

0
INSERT INTO Table2 
SELECT @Name, 
     @skillid, 
     skillname 
FROM Table1 T1 
WHERE T1.skillid = @skillid 

wenn man Parameter verwendet in table2 einzufügen.

+0

vielen Dank für Ihre Antworten, die ich mit ihm gekommen sind Werke declare @skilln Satz @ skilln = 4 Einsatz in table2 int 'A' wählen, @ skilln, s.skillname von table1 s wo skillid = @ skilln – user3853596

Verwandte Themen