[SQL] Spalte von einer Tabelle in die andere kopieren

Gawan

kennt sich schon aus
Hallo,

ich habe 2 Tabellen. Die eine dient mir als Template-Tabelle wo für jeden Produkt bestimmte Werte vorgegeben sind.
In der zweiten Tabelle sind dann Instanzen der Produkte die zunächst die Template-Werte enthalten, aber auch verändert werden können.

Ich habe jetzt eine neue Spalte in die Template-Tabelle eingefügt und möchte die Werte in die aktuelle Instanzen-Tabelle bringen.

Das Ganze sieht ca. so aus:

Code:
Tabelle Template
ID          Name          Wert1      Wert2      Wert3       Wert4(neu)
0          Test1           10           15             2             60
1          Test2           11           12             1             70
2          Test3            9            21             1            65


Tabelle Instanzen
ID          Typ          Wert1      Wert2      Wert3       Wert4(neu)
2601      Test1           10           15             2            NULL
2605      Test2           11           12             1            NULL
2609      Test1           10           15             2            NULL
2616      Test2           11           12             1            NULL

Um die Spalte Wert 4 zu befüllen habe ich folgenden Code versucht:

Code:
update Instanzen set Instanzen.Wert4 = Template.Wert4 where
Instanzen.ID = Template.ID;

Als Antwort erhalte ich jedesmal:

Msg 4104, Level 16, State 1, Line 1
The multi-part identifier "Template.ID" could not be bound.

und ich weiß nicht mehr weiter :cry:

lG
Gawan
 

x45

chronische Wohlfühlitis
Heisst die Spalte wirklich ID und nicht id oder Id? Evtl. mal die Groß-und Kleinschreibung überprüfen.
 

Gawan

kennt sich schon aus
Hat damit nix zu tun - ich hab jetzt sogar schon temporäre Tabellen angelegt - alles schon zig mal kontrolliert, die Fehlermeldung bleibt aber immer die gleiche

The multi-part identifier "tmp_tab1.item" could not be bound.
 

x45

chronische Wohlfühlitis
Habe da was gefunden:

This was a bug in the older versions of SQL Server. We fixed the problems with the ORDER BY clause in SQL Server 2005. This is documented under the following topic:

Behavior Changes to Database Engine Features in SQL Server 2005


Also, I should note that the query above will run fine if the database compatibility level is set to 80 or below. You can do this by using the sp_dbcmptlevel system SP but please read the corresponding topic in Books Online before going this route. The database compatibility level for databases upgraded from SQL Server will automatically be at 80 so your existing code should run fine.
 

Gawan

kennt sich schon aus
auf der seite war ich natürlich auch - habe aber keinen konkreten hinweis auf eine Antwort zu meiner Frage gefunden :(
 
Oben