网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计资源 > 数据库 > 正文

SQL2005中的uniqueidentifier数据类型与NEWID()函数

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

uniqueidentifier中文含义“唯一的标识符”。
uniqueidentifier数据类型是16个字节的二进制值,应具有唯一性,必须与NEWID()函数配合使用。
uniqueidentifier数据类型与identity自增不同,不会为插入的新行自动生成新的ID,新值由NEWID()函数指定。
NEWID()函数值会生成全球唯一的标识,标识由网卡号和CPU时钟组成,如:6F9619FF-8B86-D011-B42D-00C04FC964FF。
一个表可以定义多个uniqueidentifier列。
对变量使用NEWID()函数

  1. -- Creating a local variable with DECLARE/SET syntax.  
  2. DECLARE @myid uniqueidentifier  
  3. SET @myid = NEWID()  
  4. PRINT 'Value of @myid is: 'CONVERT(varchar(255), @myid) 

在 CREATE TABLE 语句中使用 NEWID

  1. -- Creating a table using NEWID for uniqueidentifier data type.  
  2. CREATE TABLE cust  
  3. (  
  4. CustomerID uniqueidentifier NOT NULL  
  5.    DEFAULT newid(),  
  6. Company varchar(30) NOT NULL,  
  7. ContactName varchar(60) NOT NULL,  
  8. Address varchar(30) NOT NULL,  
  9. City varchar(30) NOT NULL,  
  10. StateProvince varchar(10) NULL,  
  11. PostalCode varchar(10) NOT NULL,  
  12. CountryRegion varchar(20) NOT NULL,  
  13. Telephone varchar(15) NOT NULL,  
  14. Fax varchar(15) NULL  
  15. )  
  16. GO  
  17. -- Inserting data into cust table.  
  18. INSERT cust  
  19. (CustomerID, Company, ContactName, Address, City, StateProvince,  
  20. PostalCode, CountryRegion, Telephone, Fax)  
  21. VALUES  
  22. (NEWID(), 'Wartian Herkku''Pirkko Koskitalo''Torikatu 38''Oulu'NULL,  
  23. '90110''Finland''981-443655''981-443655')  
  24. INSERT cust  
  25. (CustomerID, Company, ContactName, Address, City, StateProvince,  
  26. PostalCode, CountryRegion, Telephone, Fax)  
  27. VALUES  
  28. (NEWID(), 'Wellington Importadora''Paula Parente''Rua do Mercado, 12''Resende''SP',  
  29. '08737-363''Brasil''(14) 555-8122''')  
  30. INSERT cust  
  31. (CustomerID, Company, ContactName, Address, City, StateProvince,  
  32. PostalCode, CountryRegion, Telephone, Fax)  
  33. VALUES  
  34. (NEWID(), 'Cactus Comidas para Ilevar''Patricio Simpson''Cerrito 333''Buenos Aires'NULL
  35. '1010''Argentina''(1) 135-5555''(1) 135-4892')  
  36. INSERT cust  
  37. (CustomerID, Company, ContactName, Address, City, StateProvince,  
  38. PostalCode, CountryRegion, Telephone, Fax)  
  39. VALUES  
  40. (NEWID(), 'Ernst Handel''Roland Mendel''Kirchgasse 6''Graz'NULL,  
  41. '8010''Austria''7675-3425''7675-3426')  
  42. INSERT cust  
  43. (CustomerID, Company, ContactName, Address, City, StateProvince,  
  44. PostalCode, CountryRegion, Telephone, Fax)  
  45. VALUES  
  46. (NEWID(), 'Maison Dewey''Catherine Dewey''Rue Joseph-Bens 532''Bruxelles'NULL,  
  47. 'B-1180''Belgium''(02) 201 24 67''(02) 201 24 68')  
  48. GO 

使用 uniqueidentifier 和变量赋值,将名为 @myid 的局部变量声明为 uniqueidentifier 数据类型的变量。然后使用 SET 语句为该变量赋值。

  1. DECLARE @myid uniqueidentifier  
  2. SET @myid = 'A972C577-DFB0-064E-1189-0154C99310DAAC12'  
  3. GO 

uniqueidentifier 数据类型具有下列缺点
值长且难懂。这使用户难以正确键入它们,并且更难记住。
这些值是随机的,而且它们不支持任何使其对用户更有意义的模式。
也没有任何方式可以决定生成 uniqueidentifier 值的顺序。它们不适用于那些依赖递增的键值的现有应用程序。
当 uniqueidentifier 为 16 字节时,其数据类型比其他数据类型(例如 4 字节的整数)大。这意味着使用 uniqueidentifier 键生成索引的速度相对慢于使用 int 键生成索引的速度。
只对没有其他适用的数据类型的范围非常窄的方案使用 GUID。

  • 上一篇资讯: 无限级分类存储过程
  • 设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
    版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师