Cómo solucionar “No se puede insertar un valor explícito para la columna de identidad en la tabla” La columna de clave principal a menudo se configura para que se incremente 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 del incremento se transfieren a la columna IDENTIDAD como parámetros. Luego, cada vez que se agrega un nuevo registro y la inserción de identidad está desactivada, el valor de la columna IDENTIDAD aumenta en el paso predefinido, normalmente un número. Además, la propiedad IDENTITY INSERT está activada solo para una tabla en una única 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á configurado en OFF” Como se muestra abajo.Desactivar “IDENTITY INSERT OFF” e insertar datos sin “ID DE CLAVE PRIMARIA” en la declaración de inserciónEl error surge cuando el usuario ha configurado “identity_insert” en “OFF”. Luego intenta insertar datos explícitamente en la columna de clave principal de la tabla. Esto se puede explicar usando el siguiente ejemplo.Creación de bases de datos y tablas:Leer másIngrese a la expansión Gungeon que Advanced Gungeons & Draguns ha lanzadoPrimero, cree una base de datos llamada “appuals”.Creando una base de datos llamada “appuals”.Cree una tabla llamada “persona” usando el siguiente código. Mesa construida usando un “IDENTIDAD DE CLAVE PRIMARIA”CREATE TABLE person ( ID INT IDENTITY (1, 1), first_name VARCHAR(MAX) , last_name VARCHAR(MAX) )Creando una tabla llamada “persona”Sintaxis para configurar “identity_insert desactivado | en”:El “desactivar identidad_insertar | en” nos ayudará a resolver este error. La sintaxis correcta para esta declaración es la siguiente.SET IDENTITY_INSERT <database name> . <schema name>. <table name> { OFF | ON }Leer másCómo desinstalar completamente Steam JuegosMientras que el primer argumento es el nombre de la base de datos en la que se encuentra la tabla. El segundo argumento que 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.Existen fundamentalmente 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: Desactivar Identity_insertEn el primer caso, insertaremos datos en la tabla con el “INSERTO DE IDENTIDAD” ajustado a “APAGADO”. Entonces, si la 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á configurado en OFF”.Ejecute el siguiente código en la pestaña de consulta. set identity_insert person off; insert into person(ID,first_name,last_name) values(3,'Sadia','Majeed'), (4,'Michel','Ronald')La salida será así.El error surge debido a que se desactiva “IDENTITY INSERT OFF” y se insertan datos con “PRIMARY KEY ID” en la instrucción de inserción.Solución:Al girar el “INSERTAR IDENTIDAD APAGADO”el “ID DE LLAVE PRIMARIA” NO DEBE estar PRESENTE en la declaración de inserciónAhora ejecute el siguiente código en la pestaña de consulta set identity_insert person off; insert into person(first_name,last_name) values('Sadia','Majeed'), ('Michel','Ronald')Desactivar “IDENTITY INSERT OFF” e insertar datos sin “ID DE CLAVE PRIMARIA” en la declaración de inserciónEsto insertará datos en la tabla sin error. Además, no es necesario que el usuario inserte la ID DE CLAVE PRIMARIA, sino que agregará un valor de ID único automáticamente, como se ve en la siguiente figura.Error 2: Establecer identidad_insertar en ONEn el segundo caso, insertaremos datos en la tabla con el “INSERTO DE IDENTIDAD” ajustado a “EN”. Entonces, si el ID no está presente en la declaración INSERT, obtendrá el error “Mensaje 545, Nivel 16, Estado 1, Línea 17. El valor explícito debe especificarse para la columna de identidad en la tabla ‘persona’ ya sea cuando IDENTITY_INSERT está configurado en ON o cuando un usuario de replicación está insertando en una columna de identidad NO PARA REPLICACIÓN”.El error surge debido a la inserción de datos en la tabla con “INSERTAR IDENTIDAD” configurado en “ON”. Por lo tanto, el usuario debe insertar explícitamente el ID DE CLAVE PRIMARIASolución:Al girar el “INSERTAR IDENTIDAD EN” el “CLAVE PRIMARIA IDENTIFICACIÓN” debe estar presente en la declaración de inserción.Ejecute el siguiente código en la pestaña de consulta set identity_insert person on; insert into person(ID,first_name,last_name) values(5,'Jack','black'), (6,'john','Wicky')Insertar datos en la tabla con “IDENTITY INSERT” configurado en “ON” y con la identificación de la clave principal en la declaración de inserción.Esto insertará datos en la tabla sin error. Por lo tanto, la ID DE LLAVE PRIMARIA Se requiere explícitamente que el usuario lo inserte. Además, no agregará un valor de ID único automáticamente como se ve en la siguiente figura.Si usted “ESTABLECER INSERTAR IDENTIDAD EN”, permanecerá encendido durante toda la sesión. Por lo tanto, puede agregar tantos registros como desee una vez que se haya configurado. Esto también se refiere únicamente a la sesión donde está habilitado. Entonces, si abre otra pestaña de consulta, debe activarla. EN nuevamente para esa ventana de consulta. Tecnología
Tecnología Cómo solucionar el uso elevado de memoria o CPU del grupo de servicios Unistack (unistacksvcgroup) noviembre 10, 2023Existe una herramienta llamada Administrador de tareas que viene preinstalada en todas las versiones de… Read More
Tecnología Cómo solucionar el ‘Error al particionar la unidad’ en Rufus noviembre 8, 2023Alguno Windows Los usuarios informan que siempre terminan viendo el ‘Error: Error al particionar la… Read More
Tecnología Solución: falló la clonación de la migración de datos de Samsung noviembre 26, 2023Es posible que la herramienta Samsung Data Migration no pueda clonar un disco duro debido… Read More