我有一个脚本可以创建整个数据库并将所有记录插入到几十个表中。它一切正常,除非在处理过程中出现问题,并且在脚本在插入之前失败时,某个表保留了IDENTITY_INSERT ON的状态。
当发生这种情况时,如果再次尝试运行脚本,就会自动失败并显示错误“IDENTITY_INSERT已为表xx打开”,因为我们进入第一个表的插入。
为了确保在运行设置脚本的其余部分之前,对于所有表都将IDENTITY_INSERT设置为OFF,我想作为一种保险措施。
另外,我们可以关闭MS SQL连接并重新打开它,这样我理解会清除连接会话中的所有IDENTITY_INSERT值。
什么是最好的方法来做到这一点,并防止“已经打开”的错误?