[SQL] Limitações de Inserções SQL Server – Erro sql_Msg 10738

Publicado: 02/05/2013 em Backup, Bases de Dados, C#, Erros, IIS, Internet, Programação, Softwares, SQL, Truques & Dicas
Tags:, ,

 

erro_sqlserver

Os construtores de valor de tabela podem ser usados de uma de duas maneiras: diretamente na lista de VALUES de uma instrução INSERT … VALUES, ou como uma tabela derivada em qualquer lugar em que são permitidas tabelas derivadas. O número máximo de linhas que podem ser construídas inserindo linhas diretamente na lista de VALUES é 1000.

sql_Msg 10738

ERRO:

O erro 10738 será retornado se o número de linhas exceder 1000 nesse caso. Para inserir mais de 1000 linhas, use um dos métodos a seguir:

  • Crie várias instruções INSERT
  • Use uma tabela derivada
  • Importe em massa os dados usando o utilitário bcp ou a instrução BULK INSERT

Somente são permitidos valores escalares exclusivos como uma expressão de valor de linha. Uma subconsulta que envolve várias colunas não é permitida como uma expressão de valor de linha. Por exemplo, o código a seguir resulta em um erro de sintaxe porque a terceira lista de expressões de valores de linha contém uma subconsulta com várias colunas.

USE AdventureWorks2012;
GO
CREATE TABLE dbo.MyProducts (Name varchar(50), ListPrice money);
GO
-- This statement fails because the third values list contains multiple columns in the subquery.
INSERT INTO dbo.MyProducts (Name, ListPrice)
VALUES ('Helmet', 25.50),
       ('Wheel', 30.00),
       (SELECT Name, ListPrice FROM Production.Product WHERE ProductID = 720);
GO

Entretanto, a instrução pode ser reescrita especificando cada coluna separadamente na subconsulta. O exemplo a seguir insere com êxito três linhas na tabela MyProducts.

INSERT INTO dbo.MyProducts (Name, ListPrice)
VALUES ('Helmet', 25.50),
       ('Wheel', 30.00),
       ((SELECT Name FROM Production.Product WHERE ProductID = 720),
        (SELECT ListPrice FROM Production.Product WHERE ProductID = 720));
GO
comentários
  1. Rafael Lima - Brazil disse:

    Me ajudou muito, obrigado!

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s