Como corrigir o erro 'Não é possível inserir um valor explícito para a coluna de identidade na tabela quando IDENTITY_INSERT está definido como OFF'?



Experimente Nosso Instrumento Para Eliminar Problemas

A coluna de chave primária geralmente é definida para incremento automático ao construir um banco de dados SQL Server. O limite de IDENTIDADE é definido para a coluna de chave primária para fazer isso. O local inicial e a etapa de incremento são transferidos para a coluna IDENTITY como parâmetros. Então, sempre que um novo registro é adicionado e a inserção de identidade é definida como OFF, o valor da coluna IDENTITY é aumentado pela etapa predefinida normalmente um número. Além disso, a propriedade IDENTITY INSERT é definida como ON apenas para uma tabela em uma única sessão.



Neste artigo, discutiremos o erro “Não é possível inserir um valor explícito para a coluna de identidade na tabela

quando IDENTITY_INSERT é definido como OFF ” como mostrado abaixo.



Desligando o “IDENTITY INSERT OFF”, e inserindo dados sem “PRIMARY KEY ID” na instrução insert



O erro surge quando o usuário define “identity_insert” como “OFF”. Em seguida, tenta inserir dados na coluna de chave primária da tabela explicitamente. Isso pode ser explicado usando o exemplo abaixo.

Criação de banco de dados e tabela:

Primeiro, crie um banco de dados denominado “appuals”.

Criação de um banco de dados denominado “appuals”.



Crie uma tabela chamada “pessoa” usando o código a seguir. Mesa construída usando um “IDENTIDADE DA CHAVE PRIMÁRIA”

CREATE TABLE pessoa (ID INT IDENTITY (1, 1), first_name VARCHAR (MAX), last_name VARCHAR (MAX))

Criação de uma mesa chamada “pessoa”

Sintaxe para definir “identity_insert off | em':

o “Definir identity_insert off | em' nos ajudará a resolver esse erro. A sintaxe correta para esta instrução é a seguinte.

SET IDENTITY_INSERT. .
EM

Enquanto o primeiro argumento é o nome do banco de dados no qual a tabela está localizada. O segundo argumento mostrado é o esquema ao qual essa tabela pertence, cujo valor de identidade deve ser definido para EM ou FORA . O terceiro argumento

é a tabela com a coluna de identidade.

Existem basicamente duas maneiras diferentes de inserir dados na tabela sem erros. Eles são considerados como a solução para esse erro e são discutidos a seguir.

Erro 1: Definir identity_insert OFF

No primeiro caso, iremos inserir dados na tabela com o “INSERÇÃO DE IDENTIDADE” definido como 'FORA' . Portanto, se o ID estiver presente na instrução INSERT, você obterá o erro “Não é possível inserir um valor explícito para a coluna de identidade na tabela 'pessoa' quando IDENTITY_INSERT está definido como OFF”.

Execute o seguinte código na guia de consulta.

definir identidade_inserir pessoa desligada; inserir valores de pessoa (ID, nome, sobrenome) (3, 'Sadia