2015-03-24 46 views
0

我正在使用旧的应用程序并创建一个完整的新版本。我将为本地和远程数据库使用SQL Server。为了让本地和远程数据库保持同步,我要写一个同步过程...同步SQL Server数据库 - 要GUID还是不GUID

可能会使用Microsoft Sync Framework或其他自定义...这是以后的问题。

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

为了解决这个我看到了两个基本的选择:

1)基础上,INT ID值+源(如“本地”或“remote_db_name”创建一个新的PK)

2 )切换到PK GUID

我看到两个底片,但我倾向于GUID ...这意味着有很多Ø脚本痛苦的数据转换,加上可能慢指数问题...

后阅读this post我想知道如果我肩膀d做某种组合,比如使用GUID进行同步,但其他所有组合键都是“组合键”?这可能是一种浪费,虽然....

我错过了替代方法?

谢谢!

+0

关于此问题的另一个很好的文章:http://blogs.msdn.com/b/sqlserverfaq/archive/2010/05 /27/guid-vs-int-debate.aspx – pStan 2015-03-26 15:17:22

回答

1

对于快速&肮脏的解决方案,您可以将自动递增种子设置为一个大数目,因此新系统将创建其ID不会与旧系统相冲突的范围内。

下面的脚本将自动递增种子更改为1万:

DBCC CHECKIDENT ('NewTable', RESEED, 1000000) 
+0

这可能是为了我的口味“肮脏”。我有多个“客户端”数据库的可能性,所以我认为这不会起作用。 – pStan 2015-03-24 22:55:28