SQL事务发布错误:当 IDENTITY_INSERT 设置为 ON 或某个复制用户向 NOT FOR...

探讨了SQL Server中IDENTITY_INSERT的使用方法及其与复制功能的关系,包括快照复制、事务复制及可更新的事务复制等不同场景下可能出现的问题及解决办法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

当 IDENTITY_INSERT 设置为 ON 或某个复制用户向 NOT FOR REPLICATION 标识列中插入内容时,

必须为表 'test' 中的标识列指定显式值  lxg:NOT FOR REPLICATION='不用于复制'

 

lxg:

快照复制:整体复制

事务复制:差异复制,更新时可能触发触发器,对于使用发触发器的表可能发生错误或数据误差(比如Order_Status=0,当更新为1时,Customer Point 会重复积分)

可更新的事务复制:相当于事务性合并。

 

跟触发器有关,可能复制时,系统将I自增字段设为On,当事务性复制更新数据时触发Insert,于是提示上述错误。

解决方法:sp_check_for_sync_trigger ,详见http://msdn.microsoft.com/zh-cn/library/ms178612.aspx

 

如果不是发布,就

1.set identity_insert test on--取消自增


2.insert into test(ID,username) values(1003,'test'

 

3.set identity_insert test off--恢复自增
insert into test values('1010222')


---------sqlserver2005默认情况下表identity_insert为off

---------sqlserver2008初次使用时默认情况下表identity_insert为on

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值