使用 uniqueidentifier 資料

2021-08-31 17:48:30 字數 1590 閱讀 1587

uniqueidentifier 資料型別可儲存 16 位元組的二進位制值,其作用與全域性唯一識別符號 (guid) 一樣。guid 是唯一的二進位制數;世界上的任何兩台計算機都不會生成重複的 guid 值。guid 主要用於在擁有多個節點、多台計算機的網路中,分配必須具有唯一性的識別符號。

uniqueidentifier 列的 guid 值通常通過下列方式之一獲取:

transact-sql newid 函式以及應用程式 api 函式和方法用它們的網絡卡的標識號加上 cpu 時鐘的唯一編號來生成新的 uniqueidentifier 值。每個網絡卡都有唯一的標識號。newid 返回的 uniqueidentifier 值是通過使用伺服器上的網絡卡而生成的。應用程式 api 函式和方法返回的 uniqueidentifier 值是通過使用客戶端中的網絡卡而生成的。

uniqueidentifier 值通常不定義為常量。您可以按下列方式指定 uniqueidentifier 常量:

uniqueidentifier 資料型別不會按照 identity 屬性的方式為插入的行自動生成新的 id。例如,若要獲取新的 uniqueidentifier 值,則表必須具有指定 newid 函式或 newsequentialid 函式的 default 子句,或 insert 語句必須使用 newid 函式。

other

複製

create table myuniquetable

(uniquecolumn uniqueidentifier default newid(),

characters varchar(10) )

goinsert into myuniquetable(characters) values ('abc')

insert into myuniquetable values (newid(), 'def')

go

注意

您可以使用 newsequentialid 生成 guid 以減少葉級別索引上的頁爭用。newsequentialid 只能與 uniqueidentifier 型別的表列的 default 約束一起使用。

uniqueidentifier 列中可以多次出現某個 uniqueidentifier 值,除非對該列也指定了 unique 或 primary key 約束。當多個行引用源表中的同乙個主鍵時,引用其他表中 uniqueidentifier 主鍵的外來鍵列中可以多次出現各個 uniqueidentifier 值。

乙個表可以有多個 uniqueidentifier 列。每個表中可以指定乙個具有 rowguidcol 屬性的 uniqueidentifier 列。rowguidcol 屬性指明此列的 uniqueidentifier 值可唯一地標識表中的行。但是,屬性不會執行任何強制實現唯一性的操作。必須使用其他機制強制實現唯一性,例如指定列的 primary key 約束。rowguidcol 屬性主要用於 microsoftsql server 複製。具有更新訂閱的合併複製和事務複製使用 uniqueidentifier 列來確保在表的多個副本中唯一地標識行。

uniqueidentifier 資料型別具有下列缺點:

在不要求全域性唯一性或首選使用按序列增加的鍵時,請考慮使用 identity 屬性。

SQL資料型別 UNIQUEIDENTIFIER

當你正在處理被多個站點 像在跨國公司條件下 使用的大資料庫時,你也許會遇到保證 物件唯一性這樣的棘手問題。在這種情形下,可能只能靠uniqueidentifier來解決。uniqueidentifier是乙個儲存全域性唯一識別符號的guid資料型別。guid是乙個保證唯一的二進位制數,因此幾乎沒有別...

使用GraphEdit使用

1 註冊元件。其實乙個filter就是乙個com元件,所以使用之前需要註冊,可以有兩種方法對元件進行註冊。1.直接使用命令。命令列下輸入 regsvr32 hqtlystd.ax 編譯之後你會在工程目錄下的debug中找到hqtlystd.ax,這個就是要用的filter 即可註冊成功。2.vc6....

MySQL使用學習使用 mysql學習使用

1 mysql學習 1 安裝 ubuntu下直接安裝 apt get install mysql server 2 檢查伺服器是否啟動 sudo netstat tap grep mysql,如果啟動成功,出現以下資訊 tcp00localhost.localdomain mysql listen ...