亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

使用 GUID 值來作為數據庫行標識講解

2024-08-31 01:00:16
字體:
來源:轉載
供稿:網友
GUID(Global unique identifier)全局唯一標識符,它是由網卡上的標識數字(每個網卡都有唯一的標識號)以及 CPU 時鐘的唯一數字生成的的一個 16 字節的二進制值。

GUID 的格式為“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,其中每個 x 是 0-9 或 a-f 范圍內的一個十六進制的數字。例如:6F9619FF-8B86-D011-B42D-00C04FC964FF 即為有效的 GUID 值。

世界上的任何兩臺計算機都不會生成重復的 GUID 值。GUID 主要用于在擁有多個節點、多臺計算機的網絡或系統中,分配必須具有唯一性的標識符。在 Windows 平臺上,GUID 應用非常廣泛:注冊表、類及接口標識、數據庫、甚至自動生成的機器名、目錄名等。

在這次開發 ASP.NET 應用時,我大量使用了類型為 GUID 的 ID 列作為各實體表的關鍵字(鍵)。由于其唯一、易產生的特性,給應用程序處理帶來諸多好處。

1、在 SQL Server 中使用 GUID

如果在 SQL Server 的表定義中將列類型指定為 uniqueidentifier,則列的值就為 GUID 類型。

SQL Server 中的 NewID() 函數可以產生 GUID 唯一值,使用此函數的幾種方式如下:

1) 作為列默認值

將 uniqueidentifier 的列的默認值設為 NewID(),這樣當新行插入表中時,會自動生成此列 GUID 值。

2)使用 T-SQL

在 T-SQL 中使用 NewID()函數,如“INSERT INTO Table(ID,... ) VALUES(NewID(),...)”來生成此列的 GUID 值。

3)提前獲取 GUID 值

由于特殊功能需要,需要預先獲知新行的 ID 值,也可以使用如下 C# 代碼提前獲得 GUID 的值,再存儲到數據庫中:

 SqlCommand cmd = New SqlCommand();
 cmd.CommandText = "SELECT NewID()";
 string rowID = (string) cmd.ExecuteScalar();
 cmd.CommandText = "INSERT INTO Table(ID,...) VALUES(@ID,...)
 cmd.Parameters.Add("@ID",SqlDbType.UniqueIdentifier).Value = new Guid(rowID);
 cmd.ExecuteNoQuery();

uniqueidentifier 值不能進行算術運算,但可以進行(意義不大的)比較操作和 NULL 檢查;它不能象 IDENTITY 列一樣,可以獲知每行的增加時間的先后順序,只能通過增加其它時間或時間戳列來完成此功能。

2、在 .NET 中使用 GUID

GUID 在 .NET 中使用非常廣泛,而且 .NET Framework 提供了專門 Guid 基礎結構。

Guid 結構的常用法包括:

1) Guid.NewGUID() 

生成一個新的 GUID 唯一值

2) Guid.ToString()

將 GUID 值轉換成字符串,便于處理

3)構造函數 Guid(string) 

由 string 生成 Guid 結構,其中string 可以為大寫,也可以為小寫,可以包含兩端的定界符“{}”或“()”,甚至可以省略中間的“-”,Guid 結構的構造函數有很多,其它構造用法并不常用。

同時,為了適用數據庫中使用 GUID 的需要,.NET Framework 也提供了 SqlGUID 結構,它和 Guid 結構類似,只是兩者對排序(CompareTo)的處理方式不同,SqlGuid 計算值的最后 6 個字節。而 Guid 計算全部 16 個字節,這種差異可能會給 SQL Server 中 uniqueidentifier 列的排序帶來一定影響,當然這種排序意義也不大。 

.NET Framework 中可以使用類 GuidConverter 提供將 Guid 結構與各種其他表示形式相互轉換的類型轉換器。


3、GUID 的優缺點

1) 優點

同 IDENTITY 列相比,uniqueidentifier 列可以通過 NewID() 函數提前得知新增加的行 ID,為應用程序的后續處理提供了很大方便。


便于數據庫移植,其它數據庫中并不一定具有 IDENTITY 列,而 Guid 列可以作為字符型列轉換到其它數據庫中,同時將應用程序中產生的 GUID 值存入數據庫,它不會對原有數據帶來影響。


便于數據庫初始化,如果應用程序要加載一些初始數據, IDENTITY 列的處理方式就比較麻煩,而 uniqueidentifier 列則無需任何處理,直接用 T-SQL 加載即可。


便于對某些對象或常量進行永久標識,如類的 ClassID,對象的實例標識,UDDI 中的聯系人、服務接口、tModel標識定義等。
2) 缺點

GUID 值較長,不容易記憶和輸入,而且這個值是隨機、無順序的,所以使用時要注意場合,最好不要嘗試用它來作為你的電子郵件地址 J


GUID 的值有 16 個字節,與其它那些諸如 4 字節的整數相比要相對大一些。這意味著如果在數據庫中使用 uniqueidentifier 鍵,可能會帶來兩方面的消極影響:存儲空間增大;索引時間較慢。

綜合來說, GUID 的優點帶來的便利遠超出其缺點帶來的影響,隨著諸如 WebService 等系統互聯與整合技術的不斷發展,其唯一標識的特性使得其應用越來越廣,在您的應用程序中也應考慮使用它了。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美疯狂做受xxxx高潮| 久久久久久久97| 欧美激情一区二区三区高清视频| 日韩高清中文字幕| 亚洲国产精品字幕| 日韩精品在线观看视频| 热re91久久精品国99热蜜臀| 亚洲影视中文字幕| 日本老师69xxx| 日韩久久免费电影| 亚洲国产精品va在线看黑人动漫| 欧美日韩午夜激情| 亚洲毛片在线观看| 日韩视频免费看| 日本精品视频在线播放| 91精品综合久久久久久五月天| 亚洲第一页中文字幕| 日韩精品久久久久久久玫瑰园| 日韩欧美亚洲综合| 国产精品日韩欧美| 亚洲在线视频福利| 亚洲四色影视在线观看| 成人精品久久一区二区三区| 中文字幕亚洲欧美一区二区三区| 国产日韩精品电影| www.日韩不卡电影av| 欧美尺度大的性做爰视频| 国产精品爱久久久久久久| 97av在线播放| 亚洲aⅴ日韩av电影在线观看| 日韩免费观看视频| 日韩av综合中文字幕| 国产精品美女av| 亚洲精品少妇网址| 欧美大胆a视频| 国产精品成人国产乱一区| 国产视频999| 国产欧美日韩中文字幕| www高清在线视频日韩欧美| 欧美寡妇偷汉性猛交| 伦理中文字幕亚洲| 美日韩精品免费视频| 国内揄拍国内精品| 日本精品久久电影| 国产精品亚洲аv天堂网| 亚洲缚视频在线观看| 福利一区福利二区微拍刺激| 在线观看中文字幕亚洲| 久久久久久久久中文字幕| 国产精品美女免费看| 亚洲二区中文字幕| 久久精品色欧美aⅴ一区二区| 青青久久av北条麻妃海外网| 欧美日韩精品中文字幕| 中文欧美日本在线资源| 国语自产精品视频在线看一大j8| 日韩欧美999| 国产精品无码专区在线观看| 亚洲人午夜色婷婷| 国产精品日韩在线观看| 亚洲人成网站色ww在线| 热re99久久精品国产66热| 亚洲精品资源在线| 欧美色图在线视频| 98视频在线噜噜噜国产| 成人网在线免费观看| 国产视频精品一区二区三区| 日韩电视剧在线观看免费网站| 欧美亚州一区二区三区| 亚洲国模精品一区| 最近中文字幕mv在线一区二区三区四区| 日韩美女福利视频| 久热精品视频在线免费观看| 亚洲一区二区国产| 久久免费视频网站| 日韩av免费一区| 91精品国产一区| 欧美大片va欧美在线播放| 在线日韩第一页| 97在线观看视频国产| 日韩在线高清视频| 一区二区国产精品视频| 国产精品普通话| 国产精品久久久久久av| 亚洲视频在线免费观看| 久久在线精品视频| 日本久久久久久久久久久| 97视频在线观看免费高清完整版在线观看| 国产成人aa精品一区在线播放| 日日噜噜噜夜夜爽亚洲精品| 亚洲最大福利视频网| 欧美极品美女视频网站在线观看免费| 精品久久久久久久久中文字幕| 亚洲精品国产成人| 中文字幕亚洲精品| 中文欧美日本在线资源| 一本一本久久a久久精品牛牛影视| 精品国产一区二区三区四区在线观看| 日韩电影中文 亚洲精品乱码| 欧美电影在线观看高清| 国产精品极品美女粉嫩高清在线| 日韩在线视频观看正片免费网站| 久久精品国产一区二区三区| 日韩欧美极品在线观看| 日韩av大片免费看| 九九九热精品免费视频观看网站| 欧美成人黑人xx视频免费观看| 国产一区二区三区在线免费观看| 97涩涩爰在线观看亚洲| 久热精品视频在线观看| 伊人一区二区三区久久精品| 日韩一区二区精品视频| 中文字幕日韩精品有码视频| 91精品国产沙发| 成人网中文字幕| 国产精品香蕉av| 在线日韩中文字幕| 久久久久久久爱| 国产一区二区三区直播精品电影| 在线精品播放av| 亚洲色图欧美制服丝袜另类第一页| 国外成人在线视频| 日韩精品欧美激情| 欧美成人久久久| 国产精品欧美一区二区| 欧美激情精品久久久| xxx欧美精品| 国产精品久久久久9999| 欧美国产日韩xxxxx| 久青草国产97香蕉在线视频| 欧美精品18videos性欧美| 国产精品视频成人| 精品成人国产在线观看男人呻吟| 国产97色在线|日韩| 国产日韩欧美中文| 这里只有精品在线观看| 日韩av在线影视| 精品日韩中文字幕| 成人h视频在线| 久久久久久久国产精品视频| 中文字幕亚洲色图| 午夜精品99久久免费| 正在播放亚洲1区| 国产精品久久久久久久av电影| 国产精品美女av| 国产精品日韩一区| 91av在线播放| 91免费在线视频网站| 国产女精品视频网站免费| 国产亚洲xxx| 欧美极品美女视频网站在线观看免费| 欧美最顶级的aⅴ艳星| 一个人www欧美| 亚洲自拍高清视频网站| 国产成人精品一区二区在线| 日韩中文字幕免费| 国产日韩在线亚洲字幕中文| 亚洲成成品网站| 国产精品久久久久99| 久久av中文字幕| 欧美高清在线播放| 欧美成人免费一级人片100| 一区二区三区在线播放欧美| 黑人与娇小精品av专区|