【澳门新萄京】sql uniqueidentifier数据类型详整

在SQL中
ROWGUIDCOL表示新列是行的全局唯一标记列。对于每种表只可以支使多少个uniqueidentifier
列作为ROWGUIDCO列。ROWGUIDCOL属性只可以支使给uniqueidentifier列

GUID 的值有 16 个字节,与其他这些诸如 4
字节的整数相比较要相对大学一年级部分。那意味着一旦在数据库中行使 uniqueidentifier
键,大概会推动双方面包车型地铁失落影响:存款和储蓄空间增大;索引时间相当慢。

1) 优点

在SQL Server
二〇〇六中有二个数据类型uniqueidentifier,那一个数据类型就是用来支持GUID(Global
Unique
Identifier卡塔尔。这些项目标值是二个长度为32的定长字符串,例如00000002-3378-a87f-92pj-2t68i97o34ms。GUID能够有限支撑该ID的全局独一性,方便数据库整合,避防因为数量人机联作Copy以致倒车进程中因为ID相像引起不供给的冲突。在C#中有Guid类,方便我们调换和操作GUID。举例Guid.NewGuid.ToString(卡塔尔就足以获取一个新的GUID字符串。其实,GUID本质上能够感觉是光阴戳的MD5
Hash。在Lotus中,每一种Document皆有贰个大局的独一标记称作UNID(unique
identifier卡塔尔国。这几个UNID和上述GUID有着相仿的建制。作者在明天的类型中就完事了Lotus文书档案数据库向SQL
Server 关周到据库转变的劳作。涉及了比超级多的GUID和UNID的操作。在SQL
Server
200第55中学,uniquidentifier类型值总是能够用casting转变为定长的varchar类型。

便利数据库初叶化,如若应用程序要加载一些起先数据, IDENTITY
列的管理情势就比较费心,而 uniqueidentifier 列则没有需求任哪个地点理,间接用
T-SQL 加载即可。

GUID(Global unique identifier)全局唯一标记符,它是由网卡上的标记数字(每一个网卡都有独一的标暗记卡塔尔(قطر‎以至 CPU 石英钟的独一数字生成的的二个 16 字节的二进制值。

uniqueidentifier数据类型的赋值方法:

2) Guid.ToString()

.NET Framework 中得以选用类 GuidConverter 提供将 Guid 构造与种种别的代表方式相互转换的门类转变器。

例如:0xffffffff00000000ffffffff00000000

GUID
值较长,不便于回想和输入,何况这么些值是任性、无顺序的,所以接纳时要留意场所,最好不用品味用它来作为你的电子邮件地址
J

转移一个新的 GUID 独一值

其它

变动几个新的 GUID 独一值

由 string 生成 Guid 构造,个中string 可感到大写,也得以为小写,能够蕴涵两端的定界符“{}”或“(State of Qatar”,以致足以简单中间的“-”,Guid 构造的构造函数有众多,此外组织用法并一时用。

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

1) 优点

GUID 值较长,不易于回想和输入,何况那么些值是轻松、无顺序的,所以利用时要留意场面,最佳不用品味用它来作为你的电子邮件地址 J

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

1) Guid.NewGUID()

总结来讲, GUID 的长处带给的便利远超出其劣点带来的震慑,随着诸如 WebService 等连串互联与重新组合技术的无休止前进,其独一标志的特点使得其利用特别广,在你的应用程序中也应考虑选用它了。

1.运用NewID(State of Qatar函数来落到实处

2)使用 T-SQL

3、GUID 的得失

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

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

澳门新萄京,有助于数据库起头化,假诺应用程序要加载一些从头数据, IDENTITY 列的管理形式就比较麻烦,而 uniqueidentifier 列则没有必要任哪个地方理,间接用 T-SQL 加载就能够。

3.直接予以33位的14人数据

uniqueidentifier 值无法展开算术运算,但足以拓宽(意义非常的小的卡塔尔国比较操作和
NULL 检查;它不能够象 IDENTITY
列相仿,能够得悉每行的扩充时间的前后相继顺序,只可以通过扩展其余时间或时间戳列来成功此意义。

世界上的别的两台计算机都不会调换重复的 GUID 值。GUID 首要用于在富有多少个节点、多台计算机的网络或种类中,分配必得具有独一性的标记符。在 Windows 平台上,GUID 应用非常广阔:注册表、类及接口标记、数据库、以致自动生成的机器名、目录名等。

世界上的别的两台Computer都不会变动重复的 GUID 值。GUID
首要用以在颇有三个节点、多台计算机的互联网或系统中,分配必需持有独一性的标志符。在
Windows 平台上,GUID
应用非常普及:注册表、类及接口标记、数据库、以致自动生成的机器名、目录名等。

澳门新萄京 1
使用
GUID 值来作为数据库行标志

1卡塔尔 作为列私下认可值

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 的列的暗中同意值设为 NewID(卡塔尔,那样当新行插入表中时,会自动生成此列 GUID 值。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

网站地图xml地图