table - w3schools insert sql




Inserindo várias linhas em uma única consulta SQL? (3)

Eu tenho vários conjuntos de dados para inserir de uma só vez, digamos 4 linhas.

Minha tabela possui três colunas: Person , Id e Office .

INSERT INTO MyTable VALUES ("John", 123, "Lloyds Office");
INSERT INTO MyTable VALUES ("Jane", 124, "Lloyds Office");
INSERT INTO MyTable VALUES ("Billy", 125, "London Office");
INSERT INTO MyTable VALUES ("Miranda", 126, "Bristol Office");

Posso insert todas as 4 linhas em uma única SQL statement ?


No SQL Server 2008, você pode inserir várias linhas usando uma única instrução SQL INSERT.

INSERT INTO MyTable ( Column1, Column2 ) VALUES
( Value1, Value2 ), ( Value1, Value2 )

Para referência a isso, dê uma olhada no Curso MOC 2778A - Escrevendo Consultas SQL no SQL Server 2008.

Por exemplo:

INSERT INTO MyTable ( Column1, Column2, Column3 )
VALUES ('John', 123, 'Lloyds Office'), 
('Jane', 124, 'Lloyds Office'), 
('Billy', 125, 'London Office'),
('Miranda', 126, 'Bristol Office');

Se você está inserindo em uma única tabela, você pode escrever sua consulta assim (talvez apenas no MySQL):

INSERT INTO table1 (First, Last)
VALUES
    ('Fred', 'Smith'),
    ('John', 'Smith'),
    ('Michael', 'Smith'),
    ('Robert', 'Smith');

Observação: essa resposta é para o SQL Server 2005. Para o SQL Server 2008 e posterior, há métodos muito melhores, como visto nas outras respostas.

Você pode usar INSERT com SELECT UNION ALL :

INSERT INTO MyTable  (FirstCol, SecondCol)
    SELECT  'First' ,1
    UNION ALL
SELECT  'Second' ,2
    UNION ALL
SELECT  'Third' ,3
...

Apenas para pequenos conjuntos de dados, o que deve ser bom para seus 4 registros.





insert