SQL Server中的UniqueIdentifier


关键词

SQL Server中的UniqueIdentifier

摘要


当你正在处理被多个站点(像在跨国公司条件下)使用的大数据库时,你也许会遇到保证表格对象唯一性这样的棘手问题。在这种情形下,可能只能靠UNIQUEIDENTIFIER来解决。UNIQUEIDENTIFIER是一个保存全局唯一标识符的 GUID数据类型。GUID是一个保证唯一的二进制数,因此几乎没有别的计算机会产生同一个值。

GUID的唯一值是由计算机网卡的标识数加上一个CPU时钟产生的唯一数而得到的。网卡制造商至少在下一个100年内能保证网卡的唯一性。

UNIQUEIDENTIFIER值不能像 IDENTITY属性那样自动产生。要想为你的表格对象产生UNIQUEIDENTIFIER值,你必须指定NEWID函数为column的缺省值。

例如,如果你想要创建一个表格列出你的跨国公司的所有子公司的尖端产品的收入,并且你希望指定一个GUID数据类型,那么你可以键入:


当你正在处理被多个站点(像在跨国公司条件下)使用的大数据库时,你也许会遇到保证表格对象唯一性这样的棘手问题。在这种情形下,可能只能靠UNIQUEIDENTIFIER来解决。UNIQUEIDENTIFIER是一个保存全局唯一标识符的 GUID数据类型。GUID是一个保证唯一的二进制数,因此几乎没有别的计算机会产生同一个值。

GUID的唯一值是由计算机网卡的标识数加上一个CPU时钟产生的唯一数而得到的。网卡制造商至少在下一个100年内能保证网卡的唯一性。

UNIQUEIDENTIFIER值不能像 IDENTITY属性那样自动产生。要想为你的表格对象产生UNIQUEIDENTIFIER值,你必须指定NEWID函数为column的缺省值。

例如,如果你想要创建一个表格列出你的跨国公司的所有子公司的尖端产品的收入,并且你希望指定一个GUID数据类型,那么你可以键入:

CREATE TABLE NetRevenueTable

(UniqueColumn UNIQUEIDENTIFIER DEFAULT NEWID(),

Characters VARCHAR(10))

在数据库工具中,你要在数据库图表中或当你正在设计一个表格时做这件事情。为你想唯一确定的column选择Is RowGUID。缺省情况将是(newid()),它自动产生RowGUID。

尽管在许多情况下你必须保证表格对象的唯一性,但是如果你决定使用UNIQUEIDENTIFIER数据类型,请注意以下特性:

1. 这些值是长而且难懂的。
2. 这些值是随机的,不带有对用户有意义的样式。
3. 这些值在依靠连续增加的值的应用程序中很难使用。
4. 这些值有16字节,很大,因此用这些钥匙构建索引会更慢。

 

文章的版权

洪哥写文章很苦逼,如果本文对您略有帮助,点击感兴趣的广告支持洪哥!万分感谢!本文属于“洪哥笔记”原创文章,转载请注明来源地址:SQL Server中的UniqueIdentifier:http://www.splaybow.com/post/sql-server-uniqueidentifier.html

关注与收藏

如果您在服务器运维、网络管理、网站或系统开发过程中有任何疑问,洪哥以此为饭碗,请加QQ:115085382!
了解更多好文章,请关注我们的新浪微博和腾讯微博
亲,先存起来,方便以后再看啊!加入收藏夹的话,按Ctrl+D


« Sql Server中的各种通配符的使用 删除xp_cmdshell和恢复xp_cmdshell »