¿Cómo solucionar el error 'No se puede insertar un valor explícito para la columna de identidad en la tabla cuando IDENTITY_INSERT está desactivado'?



Pruebe Nuestro Instrumento Para Eliminar Los Problemas

La columna de clave principal a menudo se establece para que aumente automáticamente al construir una base de datos de SQL Server. El límite de IDENTIDAD está activado para que la columna de clave principal haga esto. La ubicación inicial y el paso de incremento se transfieren a la columna IDENTIDAD como parámetros. Luego, cada vez que se agrega un nuevo registro y el inserto de identidad se establece en APAGADO, el valor de la columna IDENTIDAD aumenta en el paso predefinido que normalmente es un número. Además, la propiedad IDENTITY INSERT se establece en ON solo para una tabla en una sola sesión.



En este artículo, discutiremos el error. 'No se puede insertar un valor explícito para la columna de identidad en la tabla

cuando IDENTITY_INSERT está desactivado ' Como se muestra abajo.



Desactivando 'IDENTITY INSERT OFF' e insertando datos sin 'PRIMARY KEY ID' en la instrucción de inserción



El error surge cuando el usuario ha establecido 'identity_insert' en 'OFF'. Luego intenta insertar datos en la columna de clave principal de la tabla de forma explícita. Esto se puede explicar con el ejemplo siguiente.

Creación de bases de datos y tablas:

Primero, cree una base de datos llamada 'appuals'.

Creación de una base de datos denominada 'appuals'.



Cree una tabla llamada 'persona' usando el siguiente código. Mesa construida usando un 'IDENTIDAD CLAVE PRIMARIA'

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

Creando una tabla llamada 'persona'

Sintaxis para configurar “identity_insert off | en':

los “Desactivar identity_insert | en' nos ayudará a resolver este error. La sintaxis correcta para esta declaración es la siguiente.

SET IDENTITY_INSERT. .
EN

Mientras que el primer argumento es el nombre de la base de datos en la que se encuentra la tabla. El segundo argumento que se muestra es el esquema al que pertenece esa tabla cuyo valor de identidad debe establecerse en EN o APAGADO . El tercer argumento

es la tabla con la columna de identidad.

Fundamentalmente, existen dos formas diferentes de insertar datos en la tabla sin errores. Estos se consideran la solución a este error y se analizan a continuación.

Error 1: establecer identity_insert en OFF

En el primer caso, insertaremos datos en la tabla con el 'INSERTAR IDENTIDAD' ajustado a 'APAGADO' . Entonces, si el ID está presente en la declaración INSERT, obtendrá el error 'No se puede insertar un valor explícito para la columna de identidad en la tabla 'persona' cuando IDENTITY_INSERT está desactivado'.

Ejecute el siguiente código en la pestaña de consulta.

desactivar identidad_insertar persona; insertar en la persona (ID, nombre, apellido) valores (3, 'Sadia