Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

SQL Server 2005:Inserir várias linhas com uma única consulta


Sim. Você tem que usar UNION ALL s no SQL Server 2005 para inserir várias linhas em um script SQL em uma única instrução.
INSERT INTO Table 
  (Name, Location) 
SELECT 'Name1', 'Location1' 
UNION ALL
SELECT 'Name2', 'Location2'
UNION ALL
SELECT 'Name3', 'Location3' 

A outra alternativa principal é repetir o Insert declaração várias vezes, o que é ainda mais detalhado. Você precisa ter cuidado ao usar transações explícitas neste último caso para evitar a sobrecarga de muitos commits individuais (e por razões de atomicidade, é claro)

Se você tiver muitas linhas para inserir, poderá usar BULK INSERT para carregar tudo de um arquivo delimitado em uma instrução.

Finalmente, se esses dados já estiverem no banco de dados que você está criando scripts (talvez para implantar em outro servidor), o Pacote de ferramentas do SSMS addin tem uma função "Gerar instruções de inserção" que pode gerar essas instruções para você.