Ich möchte Daten von einer Spalte in eine andere Spalte einer anderen Tabelle kopieren. Wie kann ich das machen?
Ich habe folgendes versucht:
Update tblindiantime Set CountryName =(Select contacts.BusinessCountry From contacts)
aber es hat nicht funktioniert.
Ich möchte die Spalte "BusinessCountry" der Kontakttabelle in die Spalte "CountryName" der Tabelle tblindiantime kopieren.
Antworten:
In SQL Server 2008 können Sie ein Update mit mehreren Tabellen wie folgt verwenden:
Sie benötigen eine Verknüpfungsbedingung, um anzugeben, welche Zeile aktualisiert werden soll.
Wenn die Zieltabelle derzeit leer ist, sollten Sie stattdessen ein INSERT verwenden:
quelle
Hier die Abfrage:
Gleiche Tabelle:
Unterschiedliche Tabelle:
quelle
Table2.Column2 => Table1.Column1
Mir ist klar, dass diese Frage alt ist, aber die akzeptierte Antwort hat bei mir nicht funktioniert. Für zukünftige Googler hat dies für mich funktioniert:
Wodurch:
quelle
[Michael Pakhantsov]
Ich hoffe, Sie haben ein Schlüsselfeld mit zwei Tabellen.
quelle
ORA-01427: single-row subquery returns more than one row
wenn die Auswahl mehr als eine Zeile zurückgibt. Was ist, wenn ich mehr als eine Zeile auswählen und die Spalte mit diesen Werten aktualisieren möchte?WHERE
. Wenn tblindiantime beispielsweise ein Feld hatContactID
, dasID
der Zeile entspricht, zucontacts
der jede Zeile in tblindiantime gehört, würden Sie verwendenWHERE tblindiantime.ContactID=contacts.ID
. Siehe cedrikdlbs Antwort für eine andere Variation.Die Antwort einer ähnlichen Frage funktionierte für mich korrekter als die ausgewählte Antwort dieser Frage (von Mark Byers). Mit Marks Antwort erhielt meine aktualisierte Spalte in allen Zeilen den gleichen Wert (möglicherweise den Wert aus der ersten Zeile, der dem Join entsprach). Durch die Verwendung der Antwort von ParveenaArora aus dem anderen Thread wurde die Spalte mit den richtigen Werten aktualisiert.
Wenn Sie Parvenenas Lösung so transformieren, dass sie die Tabellen- und Spaltennamen dieser Frage verwendet, lautet die Abfrage wie folgt (wobei ich davon ausgehe, dass die Tabellen über tblindiantime.contact_id verknüpft sind):
quelle
Ich denke, dass alle vorherigen Antworten korrekt sind. Dieser Code ist besonders gültig, wenn Sie mehrere Zeilen gleichzeitig aktualisieren müssen. Hinweis: Es handelt sich um PL / SQL
Ich wünschte, das könnte helfen.
quelle
Jetzt ist es mit Management Studio 2016 einfacher.
Verwenden von SQL Server Management Studio
Daten von einer Tabelle in eine andere kopieren
1.Öffnen Sie die Tabelle mit den Spalten, die Sie kopieren möchten, und die Spalte, in die Sie kopieren möchten, indem Sie mit der rechten Maustaste auf die Tabellen klicken und dann auf Design klicken .
2.Klicken Sie auf die Registerkarte für die Tabelle mit den Spalten, die Sie kopieren möchten, und wählen Sie diese Spalten aus.
3.Klicken Sie im Menü Bearbeiten auf Kopieren .
4.Öffnen Sie ein neues Abfrageeditorfenster.
5.Klicken Sie mit der rechten Maustaste auf den Abfrage-Editor, und klicken Sie dann im Editor auf Abfrage entwerfen .
6.Wählen Sie im Dialogfeld Tabelle hinzufügen die Quell- und Zieltabelle aus, klicken Sie auf Hinzufügen und schließen Sie das Dialogfeld Tabelle hinzufügen.
7.Klicken Sie mit der rechten Maustaste auf einen offenen Bereich des Abfrage-Editors, zeigen Sie auf Typ ändern , und klicken Sie dann auf Ergebnisse einfügen .
8.Wählen Sie im Dialogfeld Zieltabelle für Ergebnisse einfügen die Zieltabelle aus .
9.Klicken Sie im oberen Bereich des Abfrage-Designers auf die Quellenspalte in der Quelltabelle.
10. Der Abfrage-Designer hat jetzt eine INSERT-Abfrage erstellt. Klicken Sie auf OK, um die Abfrage im ursprünglichen Fenster des Abfrage-Editors zu platzieren.
11. Führen Sie die Abfrage aus, um die Daten aus der Quelltabelle in die Zieltabelle einzufügen.
Weitere Informationen finden Sie unter https://docs.microsoft.com/en-us/sql/relational-databases/tables/copy-columns-from-one-table-to-another-database-engine
quelle
Es kann durch Verwendung verschiedener Attribute gelöst werden.
quelle