segunda-feira, 18 de fevereiro de 2013

Erro no INSERT em tabela com campo IDENTITY


Ao tentar inserir um valor em uma tabela com campo identity diretamente, será necessário ligar o atributo identity_insert, e também informar explicitamente a lista de campos, ou seja, o comando a seguir, sem a lista explícita vai gerar o erro "An explicit value for the identity column in table 'table_name' can only be specified when a column list is used and IDENTITY_INSERT is ON";

INSERT nome_tabela VALUES (Valor1, Valor2, etc)

Pois neste caso é imperativo que se informa a lista de campos, deste jeito:

INSERT nome_tabela(Campo1, Campo2, etc) VALUES (Valor1, Valor2, etc).

Para ligar e desligar o atributo:
SET IDENTITY_INSER ON BANCO.DBO.TABELA ON|OFF

Não sei se a lista de campos é uma questão de versão do banco, mas no SQL Server 2008 foi necessário informá-la. Bom trabalho a todos.

Nenhum comentário:

Postar um comentário