2017-05-23 5 views
0

Schwierig in einem Satz zu beschreiben. In der Datenbank habe ich eine Tabelle, die auf 2 Tabellen aufgeteilt ist, da die Spaltengrößen die Server maximal überschreiten. Die 2 Tabellen sind durch eine eindeutige ID verbunden. In der ersten Tabelle gibt es eine GUID, die die Zeile identifiziert. Wie so:Eine Tabelle aktualisieren, wenn sie mit einer anderen verbunden ist

Table_1 
AGUID Join_Key Other columns ... 
aabbcc 1   ... 
ddeeff 2   ... 

Table_2 
Join_Key Field_To_Update Other different columns ... 
1        ... 
2        ... 

Ich habe die GUID und eine Zeichenfolge in Field_To_Update gehen.

update table_2 set Field_To_Update = 'the new column value' 
where 
    table_2.Join_Key = table_1.Join_Key and 
    table_1.AGUID = 'aabbcc' 

Ist dies der richtige Ansatz?

In der realen Datenbank sind die Tabellennamen lächerlich lang - kann Aliasing verwendet werden?

+0

Vielen Dank für die Verwendung beitreten Antworten, so schnell. Ich war ziemlich nah, konnte die Verbindung nicht finden. Danke noch einmal, –

Antwort

1

schließen, aber man braucht eine from Klausel:

update t2 
    set Field_To_Update = 'the new column value' 
    from table_2 t2 join 
     table_1 t1 
     on t2.Join_Key = t1.Join_Key and 
    where t1.AGUID = 'aabbcc'; 
1

können Sie mit Update

Update a 
    SET a.Field_To_Update = 'the new column' 
from table_2 a 
    JOIN Table_1 b 
on a.Join_key = b.Join_key 
where b.AGUID = 'aabbcc' 
1

Lösung für Ihr Problem

update b set Field_To_Update = 'the new column value' 
from table_1 as a 
inner join table_2 as b on a.Join_Key = b.Join_Key 
where 
    a.AGUID = 'aabbcc' 
1
Update t2 
set Field_To_Update = 'column Name' 
from table_2 t2 
INNER JOIN table_1 t1 on t2.Join_Key = t1.Join_Key 
where t1.AGUID = 'aabbcc'; 
Verwandte Themen