我有一项工作需要每天更新表一次: -
SET IDENTITY INSERT ON
。但是,与此同时,其他用户正在使用此实时数据库和插入记录,必须使用SET IDENTITY INSERT OFF
完成。
有什么办法可以运行该作业,同时仍允许用户插入记录?
没有问题。
设置身份插入的范围是session
,
因此,如果您使用了下一个代码:
SET IDENTITY_INSERT TableName ON
Insert statement ...
其他用户表示其他会话,因此,如果他们尝试插入身份,他们将获得下一个错误: -
无法在表'tablename'中插入身份列的明确值 当Identity_insert设置为关闭时。
来自msdn: -
任何时候, session 中只有一张表 属性设置为ON。如果表已经将此属性设置为ON, 并在另一个表上发布了语句上的sidentity_insert, SQL Server返回一个错误消息,该错误消息设置Identity_insert为 已经打开并报告该表的设置。