In SQL Server werden 100 Datensätze aus der Customers-Tabelle in tmpFerdeen eingefügt: -
SELECT top(100)*
INTO tmpFerdeen
FROM Customers
Ist es möglich, eine SELECT INTO innerhalb einer UNION ALL SELECT durchzuführen: -
SELECT top(100)*
FROM Customers
UNION All
SELECT top(100)*
FROM CustomerEurope
UNION All
SELECT top(100)*
FROM CustomerAsia
UNION All
SELECT top(100)*
FROM CustomerAmericas
Ich bin mir nicht sicher, wo ich die INTO-Klausel hinzufügen soll.
sql
sql-server
Ferdeen
quelle
quelle
Antworten:
Dies funktioniert in SQL Server:
quelle
Sie benötigen dafür überhaupt keine abgeleitete Tabelle.
Setzen Sie einfach das
INTO
nach dem erstenSELECT
quelle
Dieses "Blablabal" ist notwendig
quelle
Bei MS Access-Abfragen hat dies funktioniert:
Dies funktionierte NICHT in MS Access
quelle
Ich würde es so machen:
quelle
Die Herausforderung, die ich mit der Lösung sehe:
ist, dass dadurch ein Datensatz mit Fenster erstellt wird, der sich im RAM befindet. Bei größeren Datensätzen führt diese Lösung zu schwerwiegenden Leistungsproblemen, da zuerst die Partition erstellt werden muss und dann die Partition zum Schreiben in die temporäre Tabelle verwendet wird.
Eine bessere Lösung wäre die folgende:
um Einfügen in die temporäre Tabelle auszuwählen und dann zusätzliche Zeilen hinzuzufügen. Der Nachteil hierbei ist jedoch, dass die Daten doppelte Zeilen enthalten.
Die beste Lösung wäre die folgende:
Diese Methode sollte für alle Zwecke funktionieren, für die unterschiedliche Zeilen erforderlich sind. Wenn Sie jedoch möchten, dass die doppelten Zeilen einfach die UNION gegen UNION ALL austauschen
Viel Glück!
quelle
Vielleicht versuchen Sie das?
quelle
Versuchen Sie Folgendes: Erstellen Sie die endgültige Objekttabelle tmpFerdeen mit der Struktur der Union.
Dann
quelle