我的工作需要每天更新一次表格,使用: -
SET IDENTITY INSERT ON
。但是在同一时间,其他用户正在使用此实时数据库并插入记录,这必须使用SET IDENTITY INSERT OFF
完成。
有什么方法可以在允许用户插入记录的同时运行作业吗?
答案 0 :(得分:0)
没有问题。
设置IDENTITY INSERT的范围是session
,
所以如果您使用下一个代码:
SET IDENTITY_INSERT TableName ON
Insert statement ...
其他用户指其他会话,因此如果他们尝试插入身份,他们将收到下一个错误: -
无法在表'TableName'中为identity列插入显式值 当IDENTITY_INSERT设置为OFF时。
来自MSDN: -
任何时候,会话中只有一个表可以拥有IDENTITY_INSERT 属性设置为ON。如果表已将此属性设置为ON, 并为另一个表发出SET IDENTITY_INSERT ON语句, SQL Server返回一条错误消息,指出SET IDENTITY_INSERT为 已经打开并报告为其设置为ON的表。