sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server 2005:Infoga flera rader med en enda fråga

Japp. Du måste använda UNION ALL s i SQL Server 2005 för att infoga flera rader i ett SQL-skript i en enda sats.

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

Det andra huvudalternativet är att upprepa Insert uttalande flera gånger vilket är ännu mer utförligt. Du måste vara noga med att använda explicita transaktioner i det sista fallet för att undvika overhead av många individuella åtaganden (och av atomicitetsskäl förstås)

Om du har många rader att infoga kan du använda BULK INSERT för att ladda in allt från en avgränsad fil i en sats.

Slutligen om detta är data som redan finns i databasen som du skriptar ut (kanske för att distribuera på en annan server) SSMS Tools Pack addin har en "Generera infoga uttalanden"-funktion som kan generera dessa satser åt dig.



  1. Dumpa sql-filen till ClearDB i Heroku

  2. Hur MICROSECOND() fungerar i MariaDB

  3. kolumnvärden i rad

  4. Problem med att ställa in MySQLdb-modulen