我在两个相同的数据库之间设置了一个对等事务复制集,每个数据库都被两个不同服务器上的不同程序使用。由于我们实现了复制,我一直在表上遇到 PK 冲突,尽管插入语句没有输入主键并让 SQL Server 处理它,但两个程序都会更新。在这种情况下,表名是 Statistics: Violation of PRIMARY KEY 约束 'PK_Statistics'。无法在对象“dbo.Statistic”中插入重复键。
我的插入语句:
INSERT INTO [StackExchange].[dbo].[Statistic]
([UserId]
,[CreateDate]
,[IsError]
,[CustomData]
,[ModuleId]
,[StatisticTypeId])
VALUES
(19,GETDATE(),'true','test replication',1,1)
Run Code Online (Sandbox Code Playgroud)
此外,服务器中的事件查看器充满了冲突数据:
这是我在服务器 2 上经常遇到的错误:
在对等 1(传入)、事务 id 0x000000000031dea3 和对等(空)(在磁盘上)、事务 id(空)之间的对等 2 上检测到“更新-删除”类型的冲突
这是我在服务器 1 上遇到的相同事务错误:
在对等 2(传入)、事务 ID 0x0000000000245950 和对等 1(在磁盘上)、事务 ID 0x000000000031dea3 之间的对等 1 上检测到“删除更新”类型的冲突
在这种情况下,你会建议我做什么?
谢谢!