Uma das novidades do SQL Server 2008 em relação às versões anteriores é uma sintaxe alternativa para o comendo INSERT que permite a inserção de múltiplas linhas através da execução de um único comando.
A nova estrutura permite declarar várias linhas entre parênteses, separadas por vírgulas. Veja esta opção de sintaxe:
Assim, pode-se substituir scripts como este:
Por estruturas como esta:
Este modelo já vem sendo utilizado nos exemplos deste blog, pois diminui o tamanho dos scripts gerados e também facilita a vida do desenvolvedor SQL.
A nova estrutura permite declarar várias linhas entre parênteses, separadas por vírgulas. Veja esta opção de sintaxe:
INSERT INTO tabela (coluna1,coluna2, coluna3)
VALUES (valor1,valor2,valor3),(valor4,valor5,valor6),(valor7,valor8,valor9)
VALUES (valor1,valor2,valor3),(valor4,valor5,valor6),(valor7,valor8,valor9)
Assim, pode-se substituir scripts como este:
INSERT INTO Contato(nome,email,telefone)
VALUES ('Evandro','evandro@email.com','3456-7890')
INSERT INTO Contato(nome,email,telefone)
VALUES ('Ronaldo','contato@ronaldo.com.br','8765-5432')
INSERT INTO Contato(nome,email,telefone)
VALUES ('Mariana','mariana@email.com','3344-9988')
INSERT INTO Contato(nome,email,telefone)
VALUES ('José','falecom@jose.com','5678-1011')
VALUES ('Evandro','evandro@email.com','3456-7890')
INSERT INTO Contato(nome,email,telefone)
VALUES ('Ronaldo','contato@ronaldo.com.br','8765-5432')
INSERT INTO Contato(nome,email,telefone)
VALUES ('Mariana','mariana@email.com','3344-9988')
INSERT INTO Contato(nome,email,telefone)
VALUES ('José','falecom@jose.com','5678-1011')
Por estruturas como esta:
INSERT INTO Contato(nome,email,telefone)
VALUES
('Evandro','evandro@email.com','3456-7890'),
('Ronaldo','contato@ronaldo.com.br','8765-5432'),
('Mariana','mariana@email.com','3344-9988'),
('José','falecom@jose.com','5678-1011')
VALUES
('Evandro','evandro@email.com','3456-7890'),
('Ronaldo','contato@ronaldo.com.br','8765-5432'),
('Mariana','mariana@email.com','3344-9988'),
('José','falecom@jose.com','5678-1011')
Este modelo já vem sendo utilizado nos exemplos deste blog, pois diminui o tamanho dos scripts gerados e também facilita a vida do desenvolvedor SQL.
7 comentários:
Muito boa essa dica, obrigado.
Muito obrigado, Rubens!
Oi galera, comecei agora com o SQL e estou usando o SQL Server management studio 2008, e ele não aceita a inserção de varias linhas com um único INSERT INTO e com os atributos separados por vírgulas, como está na dica. Como faço para "atualizá-lo" para a versão que aceite essa funcionalidade ? Obrigado
Olá Felix! Você atualizou apenas o Management Studio(SSMS)? Lembre-se que as queries são executadas no servidor SQL Server.
Assim, se você utilizar o SSMS 2008 para executar consultas em um servidos SQL Server 2000, elas serão processadas pela Engine da versão 2000, e deve respeitar a sintaxe desta versão.
Vlw Pela dica, ajudou aqui no trampo :)
Já tem um tempinho esta ótima dica e somente hoje eu a vi.
Está sendo muito útil. Obrigado.
obrigada
Postar um comentário