Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Server 2005:Mehrere Zeilen mit einer einzigen Abfrage einfügen

Ja. Sie müssen UNION ALL verwenden s in SQL Server 2005, um mehrere Zeilen in einem SQL-Skript in einer einzigen Anweisung einzufügen.

INSERT INTO Table 
  (Name, Location) 
SELECT 'Name1', 'Location1' 
UNION ALL
SELECT 'Name2', 'Location2'
UNION ALL
SELECT 'Name3', 'Location3' 

Die andere Hauptalternative besteht darin, Insert zu wiederholen Anweisung mehrmals, was noch ausführlicher ist. Sie müssen in diesem letzten Fall darauf achten, explizite Transaktionen zu verwenden, um den Overhead vieler einzelner Commits zu vermeiden (und natürlich aus Gründen der Atomizität)

Wenn Sie viele Zeilen einfügen müssen, können Sie BULK INSERT verwenden um alles aus einer Datei mit Trennzeichen in einer Anweisung zu laden.

Wenn es sich schließlich um Daten handelt, die sich bereits in der Datenbank befinden, die Sie per Skript ausgeben (vielleicht um sie auf einem anderen Server bereitzustellen), das SSMS Tools Pack addin hat eine "Generate Insert Statements"-Funktion, die diese Anweisungen für Sie generieren kann.