當你正在處理被多個站點(像在跨國公司條件下)使用的大數據庫時,你也許會遇到保證表格對象唯一性這樣的棘手問題。在這種情形下,可能只能靠 ? UNIQUEIDENTIFIER來解決。UNIQUEIDENTIFIER是一個保存全局唯一標識符的GUID數據類型。GUID是一個保證唯一的二進制數,因此幾乎沒有別的計算機會產生同一個值。 ?
? ?
? GUID的唯一值是由計算機網卡的標識數加上一個CPU時鐘產生的唯一數而得到的。網卡制造商至少在下一個100年內能保證網卡的唯一性。 ?
? ?
? UNIQUEIDENTIFIER值不能像IDENTITY屬性那樣自動產生。要想為你的表格對象產生UNIQUEIDENTIFIER值,你必須指定NEWID函數為column的缺省值。 ?
? ?
? 例如,如果你想要創建一個表格列出你的跨國公司的所有子公司的尖端產品的收入,并且你希望指定一個GUID數據類型,那么你可以鍵入: ?
? ?
? CREATE ? TABLE ? NetRevenueTable ?
? ?
? (UniqueColumn ? UNIQUEIDENTIFIER ? DEFAULT ? NEWID(), ?
? ?
? Characters ? VARCHAR(10)) ?
? ?
? 在數據庫工具中,你要在數據庫圖表中或當你正在設計一個表格時做這件事情。為你想唯一確定的column選擇Is ? RowGUID。缺省情況將是(newid()),它自動產生RowGUID。 ?
? ?
? 盡管在許多情況下你必須保證表格對象的唯一性,但是如果你決定使用UNIQUEIDENTIFIER數據類型,請注意以下特性: ?
? ?
? ? ? ? 1. ? 這些值是長而且難懂的。 ?
? ? ? ? 2. ? 這些值是隨機的,不帶有對用戶有意義的樣式。 ?
? ? ? ? 3. ? 這些值在依靠連續增加的值的應用程序中很難使用。 ?
? ? ? ? 4. ? 這些值有16字節,很大,因此用這些鑰匙構建索引會更慢。????
?全局唯一標識符?,. NET中沒有對應的數據類型。???這個列的值,數據庫系統會自動生成。這個列根本不需要你為它添加數據!只要把其他數據列添完提交他會自動生成數據。