2016-04-20 17 views
1

Ich habe die anderen Beiträge zu diesem Thema gelesen und ich habe nicht wirklich eine gefunden, die diesen Fehler von der Situation, die ich habe, erhält.Die mehrteilige Kennung konnte nicht gebunden werden

Für die folgende Abfrage:

INSERT INTO dbo.EightIDs (Email) 
    SELECT Email 
    FROM dbo.TempTransferTable 
    WHERE dbo.TempTransferTable.EightID = dbo.EightIDs.EID 

Ich erhalte einen Fehler

Mehrteiliger Kennung nicht

auf dem dbo.EightIDs.EID Teil der Abfrage gebunden werden kann. Ich bin nicht sicher, warum es mir ein Problem gibt, wenn ich im Grunde nur versuche, die IDs in einer Tabelle mit den IDs in einer zweiten Tabelle zu vergleichen, und dann die E-Mails entsprechend überbringen.

EDIT:

Basierend auf den Kommentaren über die Verwendung von UPDATE mit einem JOIN, hier ist, was ich kam mit. Scheint das passender?

UPDATE tbl1 
SET tbl1.Email = tbl2.Email 
FROM dbo.EightIDs tbl1 
JOIN dbo.TempTransferTable tbl2 ON tbl2.EightID = tbl1.EID 
+1

Sie wollen bestehende aktualisieren Aufzeichnungen richtig? Dann benutze 'update' und nicht' insert' –

+1

Klingt, als ob du ein Update benötigst. – Simon

+0

Also habe ich zwei Tabellen - EightIDs und TempTransferTable, die beide eine EightID/EID (passende Werte) und ein Email Feld haben. Derzeit sind die E-Mail-Felder in der EightIDs-Tabelle alle leer (null). Daher möchte ich die E-Mails von TempTransferTable nach EightIDs migrieren. Wäre das Aktualisieren oder Einfügen in besser geeignet? –

Antwort

1

Sie müssen den Tabellennamen oder Aliasnamen vor dem Spaltennamen angeben. Hoffe, dass die E-Mail-Spalte ist vorhanden in den beiden Tabellen:

INSERT INTO dbo.EightIDs (Email) 
SELECT TT.Email 
FROM dbo.TempTransferTable TT 
JOIN dbo.EightIDs EI ON EI.EID = TT.EightID 

Oder wenn Sie die Spalte EightIDs auf TempTransferTable basierend aktualisieren möchten, können Sie die folgenden Abfrage verwenden:

UPDATE EI 
SET EI.Email = TT.Email 
FROM dbo.EightIDs EI 
JOIN dbo.TempTransferTable TT ON TT.EightID = EI.EID 
+0

Also habe ich zwei Tabellen - EightIDs und TempTransferTable, die beide eine EightID/EID (übereinstimmende Werte) und ein E-Mail-Feld haben. Derzeit sind die E-Mail-Felder in der EightIDs-Tabelle alle leer (null). Daher möchte ich die E-Mails von TempTransferTable nach EightIDs migrieren. Wäre das Aktualisieren oder Einfügen in besser geeignet? –

+1

Wenn Sie eine EightID/EID (übereinstimmende Werte) haben, müssen Sie aktualisieren. Insert erstellt doppelte Datensätze – Arulkumar

Verwandte Themen