Novidades SQL Server 2008 – Insert com múltiplos valores
Uma grande novidade incorporada na versão do SQL Server 2008 é a possibilidade de realizar um insert com múltiplos valores.
Imagine que você precise criar uma massa de dados para realizar testes por exemplo, que seja necessário incluir uma lista de nomes em uma tabela.
Até a versão do SQL Server 2005 você precisava criar uma instrução INSERT para cada registro a ser adicionado na tabela, conforme exemplo abaixo:
INSERT INTO tb_Clientes (codigo, nome, sobrenome) VALUES (1,'Joaquim','da Silva') INSERT INTO tb_Clientes (codigo, nome, sobrenome) VALUES (2,'Maria','Aparecida') INSERT INTO tb_Clientes (codigo, nome, sobrenome) VALUES (3,'João','Bezerra') INSERT INTO tb_Clientes (codigo, nome, sobrenome) VALUES (4,'Gomes','da Costa')
Outra opção seria utilizar o INSERT com o SELECT e UNION ALL:
INSERT INTO tb_Clientes (codigo, nome, sobrenome) SELECT 1,'Joaquim','da Silva' UNION ALL SELECT 2,'Maria','Aparecida' UNION ALL SELECT 3,'João','Bezerra' UNION ALL SELECT 4,'Gomes','da Costa'
Agora, com este novo recurso trazido pelo SQL Server 2008, é possível realizar um INSERT com múltiplos valores, a situação acima pode ser escrita da seguinte forma:
INSERT INTO tb_Clientes (codigo, nome, sobrenome) VALUES (1,'Joaquim','da Silva' ), (2,'Maria','Aparecida'), (3,'João','Bezerra'), (4,'Gomes','da Costa')
Melhorou, não!?!?
Rafael Paim disse,
Dezembro 8, 2009 às 11:24 am
Praticamente a mesma coisa. Teria alguma diferença em termos de performance?
marceloneias disse,
Dezembro 8, 2009 às 9:35 pm
Na prática é a mesma coisa, não temos diferença de performance o benefício fica na escrita simplificada e na legibilidade do código.