MS SQL Server 2000 在復(fù)制表時(shí)使用uniqueidentifier數(shù)據(jù)類型,來(lái)保證列值的全球唯一性。
uniqueidentifier 使用數(shù)據(jù)
?????? uniqueidentifier 數(shù)據(jù)類型存儲(chǔ) 16 字節(jié)的二進(jìn)制值,該值的使用與全局唯一標(biāo)識(shí)符 (GUID) 一樣。
?????? GUID 是一個(gè)唯一的二進(jìn)制數(shù)字;世界上的任何兩臺(tái)計(jì)算機(jī)都不會(huì)生成重復(fù)的 GUID 值。GUID 主要用于在擁有多個(gè)節(jié)點(diǎn)、多臺(tái)計(jì)算機(jī)的網(wǎng)絡(luò)中,分配必須具有唯一性的標(biāo)識(shí)符。
uniqueidentifier 列的 GUID 值通常由以下方式獲得:
?? 在 Transact-SQL 語(yǔ)句、批處理或腳本中調(diào)用 NEWID 函數(shù)。
?? 在應(yīng)用程序代碼中,調(diào)用返回 GUID 值的應(yīng)用程序 API 函數(shù)或方法。
Transact-SQL NEWID 函數(shù)以及應(yīng)用程序 API 函數(shù)和方法從它們網(wǎng)卡上的標(biāo)識(shí)數(shù)字以及 CPU 時(shí)鐘的唯一數(shù)字生成新的 uniqueidentifier 值。每個(gè)網(wǎng)卡都有唯一的標(biāo)識(shí)號(hào)。由 NEWID 返回的 uniqueidentifier使用服務(wù)器上的網(wǎng)卡生成。由應(yīng)用程序 API 函數(shù)和方法返回的 uniqueidentifier 使用客戶機(jī)上的網(wǎng)卡生成。
?????? 一般不將 uniqueidentifier 定義為常量,因?yàn)楹茈y保證實(shí)際創(chuàng)建的 uniqueidentifier 具有唯一性。指定uniqueidentifier 常量的方法有兩種:
?? 字符串格式
?? '6F9619FF-8B86-D011-B42D-00C04FC964FF'
?? 二進(jìn)制格式
?? 0xff19966f868b11d0b42d00c04fc964ff