我正在使用旧应用程序并创建一个完整的新版本。我将使用SQL Server作为本地和远程数据库。为了让本地和远程数据库保持同步,我将编写一个同步过程...
可能会使用Microsoft Sync Framework或其他自定义内容......这是以后的问题。
当前版本的数据库使用带有自动增量的int主键值。由于PK重复的可能性,保持同步更改的坏消息。
为了解决这个问题,我看到了两个基本选项:
1)根据int ID值+源创建一个新PK(如“local”或“remote_db_name”)
2)将PK切换到GUID
我在两者中看到了否定,但我倾向于GUID ...这意味着使用大量脚本进行痛苦的数据转换,以及可能的慢速索引问题......
阅读this post之后我想知道我是否应该做某种组合,比如使用GUID进行同步,但是其他所有内容的“组合键”?这可能是浪费......
我错过了替代方法吗?
谢谢!
答案 0 :(得分:1)
快速&脏解决方案,您可以将自动增量种子设置为一个大数字,因此新系统将在一个不会与旧系统冲突的范围内创建其ID。
以下脚本会将自动增量种子更改为100万:
DBCC CHECKIDENT ('NewTable', RESEED, 1000000)