教您使用UniqueIdentifier选取SQL Server主键

数据库 SQL Server
UniqueIdentifier数据类型可以选取SQL Server主键,下面为您详细介绍该方法,如果您对SQL Server主键方面感兴趣的话,不妨一看。

SQL Server中可以以UniqueIdentifier数据类型选取SQL Server主键,下面就将为您介绍如何使用UniqueIdentifier选取SQL Server主键,供您参考。

SQL Server为我们提供了UniqueIdentifier数据类型,并提供了一个生成函数NEWID( ),使用NEWID( )可以生成一个***的UniqueIdentifier。UniqueIdentifier在数据库中占用16个字节,出现重复的概率非常小,以至于可以认为是0。我们经常从注册表中看到类似{45F0EB02-0727-4F2E-AAB5-E8AEDEE0CEC5}的东西实际上就是一个UniqueIdentifier,Windows用它来做COM组件以及接口的标识,防止出现重复。在.NET里管UniqueIdentifier称之为GUID(Global Unique Identifier)。在C#中可以使用如下命令生成一个GUID:
 
GUID u = System.Guid.NewGuid(); 

对于上面提到的Order与OrderDetail的程序,如果选用UniqueIdentifier作为SQL Server主键的话,我们完全可以避免上面提到的增加网络 RoundTrip的问题。通过程序直接生成GUID填充主键,不用考虑是否会出现重复。

UniqueIdentifier 字段也存在严重的缺陷:首先,它的长度是16字节,是整数的4倍长,会占用大量存储空间。更为严重的是,UniqueIdentifier的生成毫无规律可言,要想在上面建立索引(绝大多数数据库在主键上都有索引)是一个非常耗时的操作。有人做过实验,插入同样的数据量,使用 UniqueIdentifier型数据做主键要比使用Integer型数据慢,所以,出于效率考虑,尽可能避免使用UniqueIdentifier型数据库作为主键键值。
 

 

 

【编辑推荐】

SQL CHARINDEX函数的使用

SQL查询时间段的语句写法

三种SQL索引

SQL隐性事务实例

SQL事务的操作语法

责任编辑:段燃 来源: 互联网
相关推荐

2010-09-25 11:02:33

SQL主键

2010-09-25 10:41:34

SQL SERVER主

2010-10-21 16:59:37

SQL Server创

2010-10-21 16:59:37

SQL Server创

2010-09-28 11:07:37

SQL索引

2010-09-25 09:45:46

sql server主

2010-09-14 13:22:51

sql server备

2010-10-21 14:06:22

定义SQL Serve

2010-09-27 16:48:07

sql server时

2010-09-24 16:52:18

sql DATENAM

2010-10-20 10:31:57

sql server联

2010-09-16 15:48:03

SQL Server系

2010-10-19 16:58:34

SQL Server日

2010-09-07 10:42:12

SQL语句

2010-09-25 09:18:45

sql server主

2010-09-27 16:32:46

SQL Server日

2010-10-19 13:05:31

Sql Server远

2010-09-16 16:29:15

sql server表

2010-09-13 16:19:47

Sql Server数

2010-09-09 09:59:37

SQL函数TRUNC
点赞
收藏

51CTO技术栈公众号