我设置表列属性 。根据Microsoft .
激活“NOT FOR REPLICATION”选项后,从复制代理到发布服务器 A 的连接将插入具有 1、2、3、4 等值的行。这些值将不经更改地复制到发布服务器 B(即 1、2、3) ,4)。来自发布服务器 B 上的复制代理的连接获取值 1001、1002、1003、1004。这些值将不经更改地复制到 A。当所有数据被分发或合并时,两个发布服务器的值均为 1、2、3、4、1001、1002、1003、1004。发布服务器 A 的下一个本地插入值为 5。发布服务器 B 的下一个本地插入值为 1005。
但是当我尝试上述过程并尝试插入查询时,最后一行 id 值为 10,然后尝试插入查询。
`SET IDENTITY_INSERT [BusOprtn].[dbo].[WinFormMaster] ON
insert into [BusOprtn].[dbo].[WinFormMaster] (Id,Name) values(40,'fdsf');
设置 IDENTITY_INSERT [BusOprtn].[dbo].[WinFormMaster] 关闭
。此后,当我在 sql Management Studio 的编辑模式下插入新行时,它会插入 id 为 41 的新行,但应该是 11。这可能是什么错误。
如果上面没有错误,那么我如何解决以身份列作为主键的复制或同步的动机。如果同步无法实现,我想使用合并复制。
最佳答案
没有错误,运行插入后,标识值将是 1 + 最后插入的值。您需要执行 dbcc checkident(TableName, newvalue, Reseed)
关于sql-server - 不适用于复制,SQL 不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25381426/