Ho uno script che crea un intero database e inserisce tutti i record in alcune dozzine di tabelle. Funziona alla grande, a meno che non ci sia un problema durante l'elaborazione, e una tabella viene lasciata con IDENTITY_INSERT ON, quando lo script fallisce durante l'inserimento e prima che possa essere nuovamente impostato su OFF.Imposta IDENTITY_INSERT OFF per tutte le tabelle
Quando ciò accade, lo script fallisce automaticamente quando si tenta di eseguirlo di nuovo, con l'errore "IDENTITY_INSERT è già attivo per tabella xx" mentre entriamo nell'inserzione per la prima tabella.
Come sicurezza, mi piacerebbe assicurarsi che IDENTITY_INSERT sia impostato su OFF per tutte le tabelle, prima di eseguire il resto dell'elaborazione nello script di installazione.
In alternativa, potremmo forse chiudere la connessione MS SQL e aprirla di nuovo, che, a quanto ho capito, cancellerebbe tutti i valori IDENTITY_INSERT per la sessione di connessione.
Qual è il modo migliore per farlo e prevenire gli errori "già attivi"?
Quale versione di SQL Server? –
Questa app deve funzionare con il 2005 e oltre, quindi idealmente una soluzione che funziona per tutte le versioni recenti e future. –
La mia soluzione di seguito dovrebbe funzionare tra 05 e successivi. –