C# 同步时不复制ID的数据库复制
我需要将我的数据库复制到世界各地的多个位置。我已经成功地测试了SQL Server复制,但是我需要复制的数据库有一个表,该表为所有其他表提供唯一的ID 问题的例子 我有一个西班牙位置(从位置)和一个美国位置(主位置),这两个位置都是完全相同的数据库模式,其中包括为所有其他表生成唯一ID的表。当Span中的记录创建时,它有一个唯一的id,例如123,那么,当同步尝试发生时,id 123已经在我的美国位置创建,最新的唯一id是311C# 同步时不复制ID的数据库复制,c#,sql-server,database,database-design,architecture,C#,Sql Server,Database,Database Design,Architecture,我需要将我的数据库复制到世界各地的多个位置。我已经成功地测试了SQL Server复制,但是我需要复制的数据库有一个表,该表为所有其他表提供唯一的ID 问题的例子 我有一个西班牙位置(从位置)和一个美国位置(主位置),这两个位置都是完全相同的数据库模式,其中包括为所有其他表生成唯一ID的表。当Span中的记录创建时,它有一个唯一的id,例如123,那么,当同步尝试发生时,id 123已经在我的美国位置创建,最新的唯一id是311 因此,我的问题是,需要如何配置SQL Server复制以支持这种模
因此,我的问题是,需要如何配置SQL Server复制以支持这种模式?在复制场景中,这样的ID总是会让您非常头疼,如果可能的话,我强烈建议将所有相关ID切换为UniqueIdentifier类型使用复合密钥。一个属性是id,另一个属性标识产生该id的节点。因此,该组合是唯一的。我在误读问题时删除了我的答案。如果您担心像这样的唯一键冲突,那么也许您可以从每个实例生成特定范围的值(对我来说感觉像是黑客攻击)。另一个选项是使用时间戳或唯一标识符作为ROWGUIDCOL,以确保跨实例的唯一性。在这种情况下,与我前面提到的事务性复制相比,使用合并复制最适合您。@MichaelSander将所有相关ID切换为uniqueidentifier类型将不起作用,因为“商业政治”“过去20年来,ID就是这样做的,它被证明是有效的”根据我之前的评论,复合键可能是解决方案。