MSSQL 2008 SET IDENTITY INSERT在实时数据库上

时间:2017-02-20 06:38:47

标签: sql-server sql-server-2008 identity

我的工作需要每天更新一次表格,使用: -

SET IDENTITY INSERT ON

。但是在同一时间,其他用户正在使用此实时数据库并插入记录,这必须使用SET IDENTITY INSERT OFF完成。

有什么方法可以在允许用户插入记录的同时运行作业吗?

1 个答案:

答案 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的表。