2015-03-24 63 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