En una migración de MS SQL Server me encontré con algunas tablas que tienen PK con un identity por lo que es necesario bloquear esta propiedad antes de hacer un insert masivo con PK definidos con anterioridad. Para ello es necesario ejecutar el script con las siguientes instrucciones:
Posterior a este insert masivo, el campo con identity quedará seteado para ser insertado con el valor que viene a continuación de acuerdo con el mayor valor ingresado y el incremento definido para el identity.
--saca identity de la tabla
set identity_insert sifaComuna on
insert into sifaComuna
(idComuna
,idRegion
,nombreComuna)
select cd_comuna
,cd_region
,nm_comuna
from db_SNP_RNASQL.dbo.tb_comuna
--vuelve a poner identity en la tabla
set identity_insert sifaComuna off
perdí la URL desde donde saqué esto.
2 comentarios:
también puede servir esto, si se quiere restablecer el identity de la tabla:
DBCC CHECKIDENT (, RESEED,0)
Fuente:
http://www.devjoker.com/contenidos/Administraci%C3%B3n/290/Reiniciar-un-campo-identity-en-SQL-Server.aspx
DBCC CHECKIDENT ([nombre_tabla}], RESEED,0)
Publicar un comentario