2014-01-06 154 views
-1

我有這樣一個表:SQL Server中uniqueidentifier的用法是什麼?

Table1 (Table_ID Int Primary Key, Name Varchar(50), ROWID Uniqueidentifier) 

ROWID列的默認值是使用NEWID()功能設置。

我知道NEWID()函數會爲每一行生成一個唯一的標識符。

我想知道爲什麼我們需要每行的唯一標識符?如果我們想要每一行的唯一性,我可以使用我的主鍵來實現這一點。我是SQL新手。請指教。

謝謝。

+0

比方說,您爲不同的客戶端提供了一堆不同的相同數據庫,然後是一箇中央數據庫,其中包含來自所有客戶端的一些信息。如果您需要中央數據庫中表格的唯一性,您可以使用UniqueIdentifier實現此功能(大部分)。 –

+0

你將不得不問這個數據庫模式的原始設計者關於他的原因。像複製SQL Server的一些功能需要一個GUID列的功能 - 也許這是原因之一。但是我同意你的看法 - 如果你已經有了主鍵,那麼另一個獨特的'ROWID'實際上並不是必須的 –

回答

0

唯一標識符是CPU特定ID,它是全球唯一的,這尤其是如果你曾經有移動你的數據row_identity(整數)將開始在新的DB服務器是非常有用的..

0

這可能是有用的如果你正在與其他系統連接。但是,如果您在獨立系統中工作,則可以絕對使用您的PK作爲表格的「唯一」行標識。