日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

SqlServer中的数据类型UniqueIdentifier

發布時間:2023/12/13 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 SqlServer中的数据类型UniqueIdentifier 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SqlServer中的數據類型UniqueIdentifier究竟是什么東東?

該類型一般用來做為主鍵使用,可用SQL語法的newid()來生成一個唯一的值。
我想請問的是,這個值是一個長整型的數據值呢,還是個其他的什么值?我在程序中該怎樣去控制他?
歡迎多多交流。
?
?
?

摘自幫助:

uniqueidentifier
全局唯一標識符?(GUID)。

凝視
uniqueidentifier?數據類型的列或局部變量可用兩種方法初始化為一個值:?

使用?NEWID?函數。


將字符串常量轉換為例如以下形式(xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx,當中每一個?x?是?0-9?或?a-f?范圍內的一個十六進制的數字)。比如,6F9619FF-8B86-D011-B42D-00C04FC964FF?即為有效的?uniqueidentifier?值。?
比較運算符可與?uniqueidentifier?值一起使用。然而,排列并非通過比較兩個值的位模式來實現。同意對?uniqueidentifier?值運行的操作僅僅有比較?(=,?<>,?<,?>,?<=,?>=)?和檢查?NULL(IS?NULL?和?IS?NOT?NULL)。不同意使用其他算術運算符。全部的列約束及屬性(IDENTITY?除外)均同意用于?uniqueidentifier?數據類型。?


使用?uniqueidentifier?數據
uniqueidentifier?數據類型存儲?16?字節的二進制值,該值的使用與全局唯一標識符?(GUID)?一樣。GUID?是一個唯一的二進制數字;世界上的不論什么兩臺計算機都不會生成反復的?GUID?值。GUID?主要用于在擁有多個節點、多臺計算機的網絡中,分配必須具有唯一性的標識符。

uniqueidentifier?列的?GUID?值通常由下面方式獲得:?

在?Transact-SQL?語句、批處理或腳本中調用?NEWID?函數。


在應用程序代碼中,調用返回?GUID?值的應用程序?API?函數或方法。?
Transact-SQL?NEWID?函數以及應用程序?API?函數和方法從它們網卡上的標識數字以及?CPU?時鐘的唯一數字生成新的?uniqueidentifier?值。每一個網卡都有唯一的標識號。由?NEWID?返回的?uniqueidentifier?使用server上的網卡生成。由應用程序?API?函數和方法返回的?uniqueidentifier?使用客戶機上的網卡生成。

一般不將?uniqueidentifier?定義為常量,由于非常難保證實際創建的?uniqueidentifier?具有唯一性。指定?uniqueidentifier?常量的方法有兩種:?

字符串格式?
'6F9619FF-8B86-D011-B42D-00C04FC964FF'

二進制格式?
0xff19966f868b11d0b42d00c04fc964ff

uniqueidentifier?數據類型不象IDENTITY?屬性那樣為新插入的行自己主動生成新的ID。為了得到新的?uniqueidentifier?值,表必須具有一個指定?NEWID?函數的?DEFAULT?子句,或使用?NEWID?函數的?INSERT?語句:

CREATE?TABLE?MyUniqueTable
(UniqueColumn?UNIQUEIDENTIFIER?DEFAULT?NEWID(),
Characters?VARCHAR(10)?)
GO
INSERT?INTO?MyUniqueTable(Characters)?VALUES?('abc')
INSERT?INTO?MyUniqueTable?VALUES?(NEWID(),?'def')
GO

uniqueidentifier?列能夠包括多次出現的?uniqueidentifier?值,除非也對此列指定了?UNIQUE?或?PRIMARY?KEY?約束。當有多行引用源表中的同一主鍵時,引用其他表的?uniqueidentifier?主鍵的外鍵列將包括多次出現的個別?uniqueidentifier?值。

一個表能夠有多個?uniqueidentifier?列。每一個表中能夠指定一個具有?ROWGUIDCOL?屬性的?uniqueidentifier?列。ROWGUIDCOL?屬性表明此列的?uniqueidentifier?值唯一地標識表中的行。可是,該屬性并沒有運行該唯一性。唯一性必須通過其他機制來運行,比方為列指定?PRIMARY?KEY?約束。ROWGUIDCOL?屬性主要用于?SQL?Server?復制。

uniqueidentifier?數據類型的主要長處是保證由?Transact-SQL?NEWID?函數或應用程序?GUID?函數生成的值在全球是唯一的。

uniqueidentifier?數據類型的具有幾個缺點:?

值長且難懂。這使用戶難以正確鍵入它們,并且更難記住。


這些值是隨機的,并且它們不能接受不論什么使它們對用戶變得更有意義的模式。


沒有不論什么方式能夠決定生成?uniqueidentifier?值的順序。它們不適用于那些依賴遞增的鍵值的現有應用程序。


uniqueidentifier?數據類型具有?16?個字節,與其他那些諸如?4?字節的整數相比要相對大一些。這意味著使用?uniqueidentifier?鍵建立的索引可能會比使用?int?鍵實現的索引相對慢一些。?
假設全局唯一性并非必須的,或者須要一個連續遞增的鍵,則能夠考慮使用?IDENTITY?屬性。


^_^
?
?

1。sql?server幫助里面有具體的答案,自己查找。
2。打開幫助
索引--輸入uniqueidentifier就可以。

?
?

uniqueidentifier是全局唯一標識符?(GUID)
NEWID()返回類型為uniqueidentifier
SQL?SERVER聯機幫助中的樣例:
declare?@myid?uniqueidentifier
set?@myid=newid()
print?'Value?of?@myid?is?'+cast(@myid?as?varchar(255))
每次執行以上程序返回不同的uniqueidentifier
?

轉載于:https://www.cnblogs.com/mengfanrong/p/4351537.html

總結

以上是生活随笔為你收集整理的SqlServer中的数据类型UniqueIdentifier的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。