我有一个脚本,它创建一个完整的数据库并将所有记录插入到几十个表中。它工作得很好,除非在处理过程中出现一些问题,并且当脚本在插入过程中失败并且可以再次将其设置为 OFF 之前,表格会留下 IDENTITY_INSERT ON。
发生这种情况时,脚本在尝试再次运行时会自动失败,并在我们进入第一个表的插入时出现错误“IDENTITY_INSERT is already ON for table xx”。
作为故障保险,我想确保在设置脚本中运行其余处理之前,所有表的 IDENTITY_INSERT 都设置为 OFF。
作为替代方案,我们也许可以关闭 MS SQL 连接并再次打开它,据我了解,这将清除连接会话的所有 IDENTITY_INSERT 值。
做到这一点并防止“已经启动”错误的最佳方法是什么?