在创建事务复制时,很多时候不一定使用默认的快照进行初始化,而是使用备份还原初始化。而当对有标识列(即identity的自增列)的表进行复制的时候,使用备份还原初始化搭建起来的复制常常就会报错,即:当 IDENTITY_INSERT 设置为 OFF 时,不能为表‘XXX’中的标识列插入显式值

  这个错误是在创建表的时候,有一项’标识规范‘中的’不用于复制‘默认为‘否’,所以在发布端数据库插入数据时就会导致,右键表,选择设计选项可以看到,如图

  当使用备份还原进行初始化,订阅端的这张表该选项也会默认为‘否’,因此就会报错。在不删除此复制的情况下,以下有几种方法可进行修改:

1.  最简单的就是把订阅服务器上这张表的该选项修改为‘’即可;

2.  既然这里这个选项是‘否’,那么在创建这个表的时候在标识列就可以加一句:not for replication,但是既然已经有该表并且为了此表配置了复制,那么就可以在订阅服务器上执行下面这句代码即可,

use [database]
go
alter table [tablename] alter column [columnname] add not for replication

3.  第三种方法需要对复制的原理有一定的了解,复制只会将配置了复制的表上的update,delete和insert操作所造成的数据变化传递过来,在订阅服务器上针对这张表会创建三个存储过程,分别为dbo.sp_MSupd_dbo表名、dbo.sp_MSdel_dbo表名、dbo.sp_MSins_dbo表名,用这三个存储过程对订阅表进行修改。那么因为identity的存在,identity_insert选项为OFF,而每一次的插入需要将identity_insert设置为ON才可以进行插入,所以我们可以直接将插入的这个存储过程(dbo.sp_MSins_dbo表名)进行修改,加上下面这句,就可以自动插入数据。

set identity_insert [表名] on

当 IDENTITY_INSERT 设置为 OFF 时,不能为表‘XXX’中的标识列插入显式值。的更多相关文章

  1. 当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'OrderList' 中的标识列插入显式值

    问题描述:在SQL SERVER 2008中,向数据表中字段插入数据时,会报错,错误如下: 当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'OrderList' 中的标识列插入显式 ...

  2. 当 IDENTITY_INSERT 设置为 OFF 时,不能向表 '#TT' 中的标识列插入显式值。 sql server 临时表

    当 IDENTITY_INSERT 设置为 OFF 时,不能向表 '#TT' 中的标识列插入显式值.我是在SqlServer写存储过程中遇到的这个错误,当时就心想:临时表怎么会有主键呢,我也没有设置主 ...

  3. 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'T_Shell' 中的标识列插入显式值。

    --允许将显示值插入表的标识列中-ON:允许 OFF:不允许set identity_insert T_shell ONset identity_insert T_Shell OFF

  4. 当 IDENTITY_INSERT 设置为 OFF 时,不能为表中的标识列插入显式值

    {"当 IDENTITY_INSERT 设置为 OFF 时,不能向表 'OrderList' 中的标识列插入显式值"} 对于这个异常可以从两个角度来处理:A:数据库执行语句  B: ...

  5. 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'tb_MyInvoices' 中的标识列插入显式值

    默认情况下,IDENTITY_INSER就是off 这种情况下,你写insert 语句时,identity栏位,不要写值,系统会自动帮你写入. 举例说明: ,),dt datetime,pay int ...

  6. SQLServer,仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表xx中的标识列指定显式值

    情景: 如果此表的主键或者其中有一个列使用了  IDENTITY(1,1) 自增长时,但又想手动为此列指定值时,当用如下解决方案: set identity_insert 表名 ON 使用此命令把表的 ...

  7. 仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'XXX'中的标识列指定显式值。

    (来自:https://zhidao.baidu.com/question/494717175.html)第一条回复,原因和例子都有了,解释的很好. 插入数据时,自增长列是系统自动处理,不需要你来指定 ...

  8. EF:插入记录失败,提示当 IDENTITY_INSERT 设置为 OFF 时,不能向表中的标识列插入显式值

    EF忽然报错:增加记录时,提示当 IDENTITY_INSERT 设置为 OFF 时,不能向表 '...' 中的标识列插入显式值.真奇怪,添加记录方法一向好地地,从没出过错.要出错,那也是Update ...

  9. IDENTITY_INSERT 设置为 OFF 时,不能为表中的标识列插入显式值 的解决方法一例

    如题 IDENTITY_INSERT 设置为 OFF 时,不能为表中的标识列插入显式值 很多网上的文章是设置表的 IDENTITY_INSERT 为 ON EF中还要对模型就行设置 [Column(N ...

随机推荐

  1. 采用CSS3的动态元素(动画)设计div块的层级式展现

    此练习作品是为学习HTML5+CSS3而设计的(如有不好请大家批评指教~~~). 操作:当页面加载时,点击网页中的绿色块(一层),则有其他几块(二层)从其中央出现并向外延伸并旋转,点击这几块中任意一个 ...

  2. ios数据库常用sql语句

    SQlite常用语句 由于sql语句在程序代码中以字符串的形式存在,没有代码提示,不细心很容易出错,而且不容易被查出来.sql语句字符串是单引号. 写sql语句的时候一定要细心呀.如果写不好可以找公司 ...

  3. Windows上搭建Kafka运行环境

    完整解决方案请参考: Setting Up and Running Apache Kafka on Windows OS   在环境搭建过程中遇到两个问题,在这里先列出来,以方便查询: 1. \Jav ...

  4. iOS中文API之NSLayoutconstraint

    AutoLayout为开发者提供了一种不同于传统对于UI元素位置指定的布局方法.以前,不论是在IB里拖放,还是在代码中写,每个UIView都会有自己的frame属性,来定义其在当前视图中的位置和尺寸. ...

  5. 求文件的m至n行

    #!/usr/bin/env python def read_file(file_name,start,stop): start_line = 0 try: with open(file_name) ...

  6. jq html 页面点击图片直接上传

    <form id="ff" method="post" enctype="multipart/form-data" style=&qu ...

  7. Rstudio使用记录

    2016/11/1 目前新建两个project:project1(有两个变量x,y)&&project2(无变量)

  8. MVC控制器获取@Html.DropDownList值

    MVC控制器获取@Html.DropDownList值 发表于 2014 年 4 月 1 日 作者 efour — 暂无评论 先贴一段代码,演示@Html.DropDownList的使用. 前台 前台 ...

  9. 视觉中的深度学习方法CVPR 2012 Tutorial Deep Learning Methods for Vision

    Deep Learning Methods for Vision CVPR 2012 Tutorial  9:00am-5:30pm, Sunday June 17th, Ballroom D (Fu ...

  10. JSP 和 Servlet 有哪些相同点和不同点,他们之间的联系是什么?

    JSP 和 Servlet 有哪些相同点和不同点,他们之间的联系是什么? 联系: JSP 是 Servlet 技术的扩展,本质上是 Servlet 的简易方式,更强调应用的外表表达. JSP编译后是& ...