灵魂-放水

为学日益,为道日损。

BlogJava 首页 新随笔 联系 聚合 管理
  296 Posts :: 10 Stories :: 274 Comments :: 0 Trackbacks
当你正在处理被多个站点(像在跨国公司条件下)使用的大数据库时,你也许会遇到保证表格对象唯一性这样的棘手问题。在这种情形下,可能只能靠   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字节,很大,因此用这些钥匙构建索引会更慢。    


 全局唯一标识符 ,. NET中没有对应的数据类型。   这个列的值,数据库系统会自动生成。这个列根本不需要你为它添加数据!只要把其他数据列添完提交他会自动生成数据。
posted on 2007-01-30 09:01 放水老倌 阅读(713) 评论(0)  编辑  收藏 所属分类: 数据库

只有注册用户登录后才能发表评论。


网站导航: