¿Cómo activar y desactivar IDENTITY_INSERT usando SQL Server 2008?
¿Por qué recibo un error al insertar cuando IDENTITY_INSERT
está 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.
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.
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