數據庫:SQLServer中GUID用法介紹

今天給大家分享一下SQLServer中生成GUID的用法。

一、NEWID用法

NEWID()作用是生成無順序的GUID字符串。用法如下:

SELECT NEWID() --生成36位的GUIDSELECT REPLACE(newid(), '-', '')  -- 生成32 位的GUID

二、NEWSEQUENTIALID用法

1、NEWSEQUENTIALID是什麼?

在指定計算機上創建大於先前通過該函數生成的任何 GUID 的 GUID。

NEWSEQUENTIALID() 不能在查詢語句中使用,比如不能執行SELECT NEWSEQUENTIALID()這樣的語句;

它只能與字段類型定義uniqueidentifier 並且和 DEFAULT 約束一起作爲定義數據字段屬性使用。

只有當計算機沒有網卡時,NEWSEQUENTIALID() 生成的 GUID 纔在該特定計算機中是唯一的,反之只有當計算機有網卡時,生成的GUID纔是全球唯一。

2、NEWSEQUENTIALID的使用場景

NEWSEQUENTIALID 產生的新的值是有規律的,針對該字段創建索引會帶來查詢性能上的提升。

3、NEWSEQUENTIALID用法示例

--創建數據表create table TestGuid(id  UNIQUEIDENTIFIER  PRIMARY KEY  DEFAULT (NEWSEQUENTIALID()),sid varchar(36)    DEFAULT (newid()),name nvarchar(50) not null )-- 插入測試數據goINSERT  TestGuid (name) VALUES('小明');INSERT  TestGuid (name) VALUES('小王');INSERT  TestGuid (name) VALUES('小張');INSERT  TestGuid (name) VALUES('小劉');INSERT  TestGuid (name) VALUES('小明2');INSERT  TestGuid (name) VALUES('小王2');INSERT  TestGuid (name) VALUES('小張2');INSERT  TestGuid (name) VALUES('小劉2');INSERT  TestGuid (name) VALUES('小明3');INSERT  TestGuid (name) VALUES('小王3');INSERT  TestGuid (name) VALUES('小張3');INSERT  TestGuid (name) VALUES('小劉3');--查詢結果SELECT * FROM TestGuid ;


運行結果:

以上是分享內容,感謝閱讀,歡迎收藏、點贊、轉發。您的支持是我最大的創作動力,有問題可以留言大家共同進步!

IT技術分享社區

個人博客網站:https://programmerblog.xyz

文章推薦程序員效率:畫流程圖常用的工具程序員效率:整理常用的在線筆記軟件遠程辦公:常用的遠程協助軟件,你都知道嗎?51單片機程序下載、ISP及串口基礎知識硬件:斷路器、接觸器、繼電器基礎知識

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章