Com es corregeix l'error 'No es pot inserir un valor explícit per a la columna d'identitat a la taula quan IDENTITY_INSERT està definit a OFF'?



Proveu El Nostre Instrument Per Eliminar Problemes

La columna de claus primàries sovint es defineix com a increment automàtic quan es construeix una base de dades de SQL Server. El límit d'IDENTITAT està activat per a la columna de clau principal per fer-ho. La ubicació inicial i el pas de l'increment es transfereixen a la columna IDENTITAT com a paràmetres. A continuació, cada vegada que s'afegeix un nou registre i la inserció d'identitat es defineix a OFF, el valor de la columna IDENTITAT augmenta en el pas predefinit normalment un número. A més, la propietat IDENTITY INSERT està activada només per a una taula en una sola sessió.



En aquest article, analitzarem l’error 'No es pot inserir un valor explícit per a la columna d'identitat a la taula

quan IDENTITY_INSERT està configurat a OFF ' com es mostra a continuació.



Desactivació de la funció 'INSERT D'IDENTITAT' i inserció de dades sense 'ID DE CLAU PRIMÀRIA' a la instrucció insert



L'error es produeix quan l'usuari ha definit 'identitat_insert' a 'DESACTIVAT'. A continuació, intenta inserir dades explícitament a la columna de clau principal de la taula. Això es pot explicar mitjançant l'exemple següent.

Creació de bases de dades i taules:

En primer lloc, creeu una base de dades anomenada 'appuals'.

Creació d’una base de dades anomenada “appuals”.



Creeu una taula anomenada 'persona' mitjançant el codi següent. Taula construïda mitjançant un 'IDENTITAT CLAU PRIMÀRIA'

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

Creació d'una taula anomenada 'persona'

Sintaxi per definir 'identity_insert off | activat ”:

El “Set identity_insert off | encès ” ens ajudarà a resoldre aquest error. La sintaxi correcta per a aquesta sentència és la següent.

SET IDENTITY_INSERT. .
ACTIVAT

Mentre que el primer argument és el nom de la base de dades on es troba la taula. El segon argument que es mostra és l’esquema al qual pertany aquella taula amb un valor d’identitat que s’ha d’establir ACTIVAT o bé DESACTIVAT . El tercer argument

és la taula amb la columna d'identitat.

Hi ha fonamentalment dues formes diferents d’inserció de dades a la taula sense error. Es consideren la solució a aquest error i es descriuen a continuació.

Error 1: definiu OFF_insert_identitat

En el primer cas, inserirem dades a la taula amb el fitxer 'INSERT D'IDENTITAT' ajustat a 'DESACTIVAT' . Per tant, si l’identificador està present a la sentència INSERT, obtindreu l’error 'No es pot inserir un valor explícit per a la columna d'identitat a la taula' persona 'quan IDENTITY_INSERT està establert a OFF'.

Executeu el codi següent a la pestanya de consulta.

desactiva la persona insert_identity; inseriu els valors de persona (identificador, nom, cognom) (3, 'Sadia