Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

SQL Server 2005 :Insérer plusieurs lignes avec une seule requête

Ouais. Vous devez utiliser UNION ALL s dans SQL Server 2005 pour insérer plusieurs lignes dans un script SQL dans une seule instruction.

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

L'autre alternative principale est de répéter le Insert déclaration plusieurs fois, ce qui est encore plus verbeux. Vous devez faire attention à utiliser des transactions explicites dans ce dernier cas pour éviter la surcharge de nombreux commits individuels (et pour des raisons d'atomicité bien sûr)

Si vous avez beaucoup de lignes à insérer, vous pouvez utiliser BULK INSERT pour tout charger à partir d'un fichier délimité dans une seule instruction.

Enfin, s'il s'agit de données déjà dans la base de données que vous scriptez (peut-être pour les déployer sur un autre serveur), le SSMS Tools Pack addin a une fonction "Générer des instructions d'insertion" qui peut générer ces instructions pour vous.