Tengo un script que crea una base de datos completa e inserta todos los registros en unas pocas docenas de tablas. Funciona de maravilla, a menos que haya algún problema durante el procesamiento, y una tabla queda con IDENTITY_INSERT ON, cuando el script falla durante la inserción y antes de que se pueda establecer en OFF nuevamente.Establecer IDENTITY_INSERT OFF para todas las tablas
Cuando esto sucede, el script falla automáticamente al intentar ejecutarlo de nuevo, con el error "IDENTITY_INSERT ya está activado para la tabla xx" a medida que avanzamos en la inserción de la primera tabla.
Como solución de seguridad, me gustaría asegurarme de que IDENTITY_INSERT esté desactivado para todas las tablas, antes de ejecutar el resto del proceso en la secuencia de comandos de instalación.
Como alternativa, quizás podríamos cerrar la conexión MS SQL y abrirla de nuevo, lo que, según tengo entendido, borrará todos los valores IDENTITY_INSERT para la sesión de conexión.
¿Cuál es la mejor manera de hacer esto y evitar los errores "ya encendidos"?
¿Qué versión de SQL Server? –
Esta aplicación necesita funcionar con el año 2005 y superior, por lo que idealmente es una solución que funciona para todas las versiones recientes y futuras. –
Mi solución a continuación debería funcionar en 05 y posteriores. –