uniqueidentifier数据类型可存款和储蓄16字节的二进制值,其功用与全局独一标志符同样。GUID是并世无双的二进制数:世界上的其他两台微Computer都不会变卦重复的GUID值。

GUID(Global unique
identifier)全局独一标记符,它是由网卡上的标志数字(每一个网卡皆有独一的标志号卡塔尔以至CPU 时钟的独占鳌头数字生成的的三个 16 字节的二进制值。

在SQL中
ROWGUIDCOL表示新列是行的大局独一标记列。对于每一个表只可以指使三个uniqueidentifier
列作为ROWGUIDCO列。ROWGUIDCOL属性只可以指派给uniqueidentifier列

GUID 的格式为“xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx”,当中每种 x 是 0-9
或 a-f
范围内的多个十五进制的数字。举例:6F9619FF-8B86-D011-B42D-00C04FC964FF
即为使得的 GUID 值。

uniqueidentifier数据类型的赋值方法:

世界上的其他两台微机都不会变卦重复的 GUID 值。GUID
重要用于在具有五个节点、多台Computer的网络或系统中,分配必须有所独一性的标志符。在
Windows 平台上,GUID
应用特别广泛:注册表、类及接口标记、数据库、以致自动生成的机器名、目录名等。

1.用到NewID(State of Qatar函数来促成

在这里次支付 ASP.NET 应用时,作者大方施用了花色为 GUID 的 ID
列作为各实体表的要害字(键卡塔尔(قطر‎。由于其独一、易产生的特色,给应用程序管理带给诸Dolly益。

2.直接将字符串的常量转变为xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

1、在 SQL Server 中使用 GUID

例如:6F9619FF-8B86-D011-B42D-00C04FC964FF

一经在 SQL Server 的表定义少将列类型内定为
uniqueidentifier,则列的值就为 GUID 类型。

3.一贯予以三10位的13位数据

SQL Server 中的 NewID(卡塔尔国 函数能够发生 GUID
独一值,使用此函数的三种办法如下:

例如:0xffffffff00000000ffffffff00000000

1卡塔尔(قطر‎ 作为列暗许值

其它

将 uniqueidentifier 的列的私下认可值设为
NewID(卡塔尔国,那样当新行插入表中时,会自动生成此列 GUID 值。

在SQL Server
二零零七中有二个数据类型uniqueidentifier,这几个数据类型便是用来扶植GUID(Global
Unique
IdentifierState of Qatar。这些项指标值是三个长度为32的定长字符串,比方00000002-3378-a87f-92pj-2t68i97o34ms。GUID能够确定保障该ID的全局独一性,方便数据库整合,避防因为数量交互作用Copy以致倒车进程中因为ID相像引起不必要的冲突。在C#中有Guid类,方便我们转移和操作GUID。例如Guid.NewGuid.ToString(卡塔尔国就能够收获贰个新的GUID字符串。其实,GUID本质上得以感觉是岁月戳的MD5
Hash。在莲花小车中,每种Document都有三个大局的当世无双标志称作UNID(unique
identifierState of Qatar。这么些UNID和上述GUID有着相像的编写制定。作者在日前的系列中就成功了Lotus文书档案数据库向SQL
Server 关全面据库转变的行事。涉及了相当多的GUID和UNID的操作。在SQL
Server
二零零六中,uniquidentifier类型值总是能够用casting转变为定长的varchar类型。

2)使用 T-SQL

在 T-SQL 中运用 NewID(卡塔尔国函数,如“INSERT INTO Table(ID,… 卡塔尔(قطر‎VALUES(NewID(卡塔尔,…State of Qatar”来生成此列的 GUID 值。

3State of Qatar提前获得 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
基本功结构。

网站地图xml地图