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

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/257549.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/257549.shtml
英文地址,請注明出處:http://en.pswp.cn/news/257549.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

《架構探險——從零開始寫Java Web框架》這書不錯,能看懂的入門書

這書適合我。 哈哈&#xff0c;結合 以前的知識點&#xff0c;勉強能看懂。 講得細&#xff0c;還可以參照著弄出來。 希望能堅持 完成啦。。。 原來&#xff0c;JSTL就類似于DJANGO中的模板。 而servlet類中的res,req&#xff0c;玩了DJANGO就覺得好熟悉啦。。。&#xff1a;&…

java 生成 tar.gz_一文教您如何通過 Java 壓縮文件,打包一個 tar.gz Filebeat 采集器包...

一、背景最近&#xff0c;小哈主要在負責日志中臺的開發工作, 等等&#xff0c;啥是日志中臺&#xff1f;俺只知道中臺概念&#xff0c;這段時間的確很火&#xff0c;但是日志中臺又是用來干啥的&#xff1f;這里小哈盡量地通俗的說下日志中臺的職責&#xff0c;再說日志中臺之…

腳本安裝smokeping

我將提供兩種方法來安裝smokeping&#xff0c;一種是大家常用的普通安裝&#xff0c;另一種是用腳本下自動化安裝的&#xff0c;僅供大家學習&#xff0c;參考!普通安裝&#xff1a;centos 5.4下安裝smokeping需要的軟件:(1)httpd(2)rrdtool(3)smokeping(4)fping(5)libwww-perl…

強烈推薦:Android史上最強大的自定義任務軟件Tasker

強烈推薦&#xff1a;Android史上最強大的自定義任務軟件Taskerhttp://bbs.mumayi.com/thread-28387-1-1.html(出處: 木螞蟻手機樂園) Android上的Tasker絕對稱得上是Android系統的神器之一&#xff0c;與Auto Memory Manager不同&#xff0c;Tasker不是加速型的軟件&#xff0…

配置文件*.xml中 classpath: 與 classpath*: 的區別

首先classpath 指的是WEB-INF下面的classes目錄&#xff0c;所有src目錄下面的java、xml、properties等文件編譯后都會在此,classes在eclipse的項目目錄下是看不到的&#xff0c;它存在于部署在服務器上的項目目錄WEB-INF下 classpath:指的是第一個classpath路徑&#xff0c;也…

原型模式 java 深淺_JAVA設計模式---原型模式--淺客隆和深克隆

JAVA淺克隆和深克隆淺克隆&#xff1a;被復制對象的所有變量和原來相同&#xff0c;而所有的對其他對象的引用仍指向原對象。即如果復制的對象修改復制對象的變量&#xff0c;原對象不會改變。而修改引用的對象&#xff0c;二者均會發生改變。深復制(克隆)&#xff1a;被復制對…

SocketErrorCode:10022

在編寫.net的網絡服務器時&#xff0c;我使用了裸socket來實現。在windows上&#xff0c;或者在linux上通過.net core來跑時都沒有什么問題&#xff0c;但是通過mono運行調用socket.Bind()時卻總是報ErrorCode為10022的SocketException&#xff0c;表示參數無效。通過命令netst…

request.RequestContextListener

由于是使用spring mvc來做項目&#xff0c;因此脫離了HttpServletRequest作為參數&#xff0c;不能夠直接使用request&#xff0c;要想使用request可以使用下面的方法&#xff1a; 在web點xml中配置一個監聽 [html] view plaincopyprint?<listener> <listen…

poj1741 Tree 點分治

入門題&#xff0c;算是對樹分治有了初步的理解吧。 #include<iostream> #include<cstdio> #include<cstring> #include<cstdlib> #include<algorithm> #include<vector> #define REP(i,a,b) for(int ia;i<b;i) #define MS0(a) memset(…

深入理解 ajax_xhr 對象

2019獨角獸企業重金招聘Python工程師標準>>> ajax技術的核心是XMLHttpRequest對象(簡稱XHR)&#xff0c;這是由微軟首先引入的一個特性&#xff0c;其他瀏覽器提供商后來都提供了相同的實現。 IE5是第一款引入XHR對象的瀏覽器。在IE5中&#xff0c;XHR對象是通過MSX…

POJ 1584 A Round Peg in a Ground Hole(點到直線距離,圓與多邊形相交,多邊形是否為凸)...

題意&#xff1a;給出一個多邊形和一個圓&#xff0c;問是否是凸多邊形&#xff0c;若是則再問圓是否在凸多邊形內部。 分3步&#xff1a; 1、判斷是否是凸多邊形 2、判斷點是否在多邊形內部 3、判斷點到各邊的距離是否大于等于半徑 上代碼&#xff1a; #include <iostream&…

組函數及分組統計

分組函數 SQL中經常使用的分組函數 Count(): 計數 Max()&#xff1a;求最大值 Min()&#xff1a;求最小值 Avg()&#xff1a;求平均值 Sum()&#xff1a;求和 -- 統計emp表中的人數 select count(*) from emp; -- 統計獲得獎金的人數 select count(comm) from emp;-- 求全部雇…

java數據生成excel_Java 數據庫數據生成Excel

采用jxl.jar生成Excel項目開發注意事項&#xff1a; 1:導入從網上下載的jar包&#xff1a;mail.jar 和 activation.jar2:刪掉C:\Program Files\MyEclipse\Common\plugins\com.genuitec.eclipse.j2eedt.core_10.0.0.me201110301321\data\libraryset\EE_5 下 javaee.jar中的java…

兩張神圖介紹python3和 2.x與 3.x 的區別

有感與第一張圖, 做了第二張圖.轉載于:https://www.cnblogs.com/Vito2008/p/5280393.html

Java-jdbc連接數據庫

1、Oracle8/8i/9i數據庫&#xff08;thin模式&#xff09; Class.forName("oracle.jdbc.driver.OracleDriver").newInstance(); String url"jdbc:oracle:thin:localhost:1521:orcl"; //orcl為數據庫的SID String user"test"; String…

abstract class 和 interface 區別

本文出自與&#xff1a;heipai:tsg666含有 abstract 修飾符的 class 即為抽象類&#xff0c;abstract 類不能創建的實例對象。含有 abstract 方法的類必須定義為 abstract class&#xff0c;abstract class 類中的方法不必是抽象的。abstract class 類中定義抽象方法必須在具體…

Factorial Trailing Zeroes

https://leetcode.com/problems/factorial-trailing-zeroes/ Given an integer n, return the number of trailing zeroes in n!. Note: Your solution should be in logarithmic time complexity. 解題思路&#xff1a; 再次遇見最討厭的Math題。 開始的思路&#xff0c;結尾的…

java設計模式懶漢_java設計模式-懶漢設計模式

一、理論類加載時&#xff0c;不進行實例化&#xff0c;調用時才進行類的實例化。二、代碼實現public class LazyManPattern {//1.構造方法私有化private LazyManPattern(){}//2.類加載時&#xff0c;不進行實例化private static LazyManPattern lazyManPattern;//3.創建實例化…

多視圖參數傳遞

在iOS開發中常用的參數傳遞有以下幾種方法&#xff1a; 采用代理模式 采用iOS消息機制 通過NSDefault存儲&#xff08;或者文件、數據庫存儲等&#xff09; 通過AppDelegate定義全局變量&#xff08;或者使用UIApplication、定義一個單例類等&#xff09; 通過控制器屬性傳遞轉…

百年難得一見!阿里園區驚現雙月爭輝奇觀!

9月3日晚杭州阿里園區上空突然驚現“雙月爭輝”奇觀&#xff0c;引發路人、員工爭相拍照留念狂潮。記者隨后深入園區探訪&#xff0c;近距離觀察“雙月奇觀”。當晚&#xff0c;熱心觀眾王先生提供線索。王先生路過杭州阿里巴巴園區時&#xff0c;聽到有人呼喊&#xff1a;“快…