jueves, 30 de abril de 2009

problemas con Identity al insertar datos

Hoy tuve un problema, tenia que traerme unos datos de una base de datos.

hasta ahi nungun problema, genere el script con el Aqua data Studio y se veia todo bien. pero cuando trate de insertarlo en otra base de datos me reclamo por el indentity. y claro los insert exportados traian el id por cada fila.

Entonces averiguando por ahi, ese identity se puede desactivar de la siguiente forma:


SET IDENTITY_INSERT [dbo].[PERSON] ON
GO
INSERT INTO [dbo].[PERSON]([Id], [CreateDate])
VALUES(1, '20090428 17:01:00')
GO
SET IDENTITY_INSERT [dbo].[PERSON] OFF
GO


y listo el insert se ejecuto correctamente. lo que si me llama la atencion que a simple vista el ON y el OFF estan al revez, pero estan bien.

mi sentido comun dice que deberia ser alrevez pero bueno.


Esto es para Sql Server


--
Atte.
Victor Hugo Saavedra
http://vhspiceros.blogspot.com

1 comentario:

  1. En sybase si no recuerdo mal es igual.
    Yo lo interpretaría así:
    Quiero que me permita insertar un dato en la columna identity, entonces IDENTITY_INSERT debe ser ON. No me extrañaría si existe también un IDENTITY_UPDATE.

    ResponderEliminar