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

SQL Server Máximo de linhas que podem ser inseridas em uma única instrução de inserção


O número máximo de linhas que você pode inserir em uma instrução é 1000 ao usar INSERT INTO ... VALUES... ou seja
INSERT INTO TableName( Colum1)
VALUES (1),
       (2),
       (3),...... upto 1000 rows. 

Mas se você estiver usando uma instrução SELECT para inserir linhas em uma tabela, não há limite para isso, algo como ...
INSERT INTO TableName (ColName)
Select Col FROM AnotherTable

Agora chegando a sua segunda pergunta. O que acontece quando ocorre um erro durante uma inserção.

Bem, se você estiver inserindo linhas usando a construção de vários valores
INSERT INTO TableName( Colum1)
VALUES (1),
       (2),
       (3)

No cenário acima, se qualquer inserção de linha causar um erro, toda a instrução será revertida e nenhuma das linhas será inserida.

Mas se você estivesse inserindo linhas com uma instrução separada para cada linha, ou seja...
INSERT INTO TableName( Colum1) VALUES (1)
INSERT INTO TableName( Colum1) VALUES (2)
INSERT INTO TableName( Colum1) VALUES (3)

No caso acima, cada inserção de linha é uma instrução separada e, se qualquer inserção de linha causar um erro, somente essa instrução de inserção específica será revertida, o restante será inserido com êxito.