关于插入标识列

Posted

技术标签:

【中文标题】关于插入标识列【英文标题】:About insert identity column 【发布时间】:2016-02-20 08:48:21 【问题描述】:

我需要将一些数据(包括身份列)从其他服务器合并到我的服务器,而不会中断我的服务运行。我从另一台服务器导出数据并像这样插入到我的服务器中:

SET IDENTITY_INSERT tbl_content ON

... insert command ...

SET IDENTITY_INSERT tbl_content OFF

但是,如果我将IDENTITY_INSERT 设置为打开,其他应用程序在没有标识列的情况下将数据插入数据库中会出错

当 IDENTITY_INSERT 设置为 ON 时,必须为表 '....' 中的标识列指定显式值

如何在不中断其他应用程序的情况下插入标识列?

【问题讨论】:

不清楚你在问什么。在您描述的情况下,其他会话不会突然开始收到该错误消息。这是一个会话选项而不是表属性。 @MartinSmith 是的,你是对的。对不起,我没有测试过。我只是想象它会像那样发生。非常感谢。 【参考方案1】:

为什么在执行批量插入时不使用SqlTransaction。是的,您的表将被锁定一段时间,但至少您将保证数据完整性。

【讨论】:

以上是关于关于插入标识列的主要内容,如果未能解决你的问题,请参考以下文章

当主键列不是标识列时如何插入数据?

sqlserver向数据库插入数据的时候,自增张(标识列)列不允许为空,怎样插入该列数据?

插入标识列的 BCP 格式是啥

使用标识列插入和更新的存储过程

mysql标识列

如何强制实体框架插入标识列?