【问题标题】:Sync SQL Server Databases - To GUID or not to GUID同步 SQL Server 数据库 - 到 GUID 或不到 GUID
【发布时间】:2015-03-24 22:33:33
【问题描述】:

我正在使用一个旧应用程序并创建一个全新的版本。我打算将 SQL Server 用于本地和远程数据库。为了让本地和远程数据库保持同步,我要写一个同步过程...

可以使用 Microsoft Sync Framework 或自定义的东西...这是以后的问题。

当前版本的数据库使用带自动增量的 int 主键值。由于 PK 重复的可能性,保持更改同步的坏消息。

为了解决这个问题,我看到了两个基本选项:

1) 根据 int ID 值 + 源创建一个新的 PK(如“local”或“remote_db_name”)

2) 将PK切换为GUID

我在这两个方面都看到了负面影响,但我更倾向于 GUID ...这意味着使用大量脚本进行痛苦的数据转换,以及可能出现的索引缓慢问题...

阅读this post 后,我想知道我是否应该做某种组合,比如使用 GUID 进行同步,但使用“组合键”进行其他所有操作?不过这可能是一种浪费......

我是否缺少替代方法?

谢谢!

【问题讨论】:

标签: sql-server sync


【解决方案1】:

对于一个快速而肮脏的解决方案,您可以将 Auto-Increment Seed 设置为一个较大的数字,这样新系统将在不会与旧系统冲突的范围内创建其 ID。

以下脚本会将自增种子更改为 100 万:

DBCC CHECKIDENT ('NewTable', RESEED, 1000000)

【讨论】:

  • 这对我来说可能是“肮脏的”。我有多个“客户端”数据库的可能性,所以我认为这行不通。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-03-29
  • 1970-01-01
  • 2010-11-13
  • 1970-01-01
  • 1970-01-01
  • 2010-10-31
  • 1970-01-01
相关资源
最近更新 更多