¿Cómo activar y desactivar IDENTITY_INSERT usando SQL Server 2008?

Resuelto Beginner asked hace 13 años • 7 respuestas

¿Por qué recibo un error al insertar cuando IDENTITY_INSERTestá desactivado?

¿Cómo lo activo correctamente en SQL Server 2008? ¿Es mediante el uso de SQL Server Management Studio?

He ejecutado esta consulta:

SET IDENTITY_INSERT Database. dbo. Baskets ON

Luego recibí el mensaje en la consola de que los comandos se completaron correctamente. Sin embargo, cuando ejecuto la aplicación, todavía me da el error que se muestra a continuación:

Cannot insert explicit value for identity column in table 'Baskets' when 
IDENTITY_INSERT is set to OFF.
Beginner avatar Aug 15 '11 16:08 Beginner
Aceptado

A través de SQL según MSDN

SET IDENTITY_INSERT sometableWithIdentity ON

INSERT INTO sometableWithIdentity 
    (IdentityColumn, col2, col3, ...)
VALUES 
    (AnIdentityValue, col2value, col3value, ...)

SET IDENTITY_INSERT sometableWithIdentity OFF

El mensaje de error completo le indica exactamente qué está mal...

No se puede insertar un valor explícito para la columna de identidad en la tabla 'sometableWithIdentity' cuando IDENTITY_INSERT está establecido en OFF.

gbn avatar Aug 15 '2011 09:08 gbn

Tuve un problema en el que no me permitía insertarlo incluso después de configurar IDENTITY_INSERT ON.

El problema fue que no especifiqué los nombres de las columnas y por alguna razón no me gustó.

INSERT INTO tbl Values(vals)

Básicamente, haga el INSERT INTO tbl(cols) Values(vals) completo

Ismael avatar Feb 08 '2013 14:02 Ismael