У меня есть script, который создает всю базу данных и вставляет все записи в несколько десятков таблиц. Он отлично работает, если во время обработки не возникает какой-либо проблемы, а таблица остается с IDENTITY_INSERT ON, когда script выходит из строя во время вставки и до того, как он снова может быть отключен.
При этом script автоматически выходит из строя при попытке запустить его снова, при этом ошибка "IDENTITY_INSERT уже включена для таблицы xx", когда мы входим в вставку для первой таблицы.
Как отказоустойчивость, я хотел бы убедиться, что для IDENTITY_INSERT установлено значение OFF для всех таблиц, прежде чем запускать оставшуюся часть обработки в настройке script.
В качестве альтернативы мы могли бы закрыть соединение MS SQL и снова открыть его, что, как я понимаю, очистит все значения IDENTITY_INSERT для сеанса подключения.
Какой лучший способ сделать это и предотвратить ошибки "уже включен"?