论坛首页 综合技术论坛

SQL Server中100万年不会重复的标识列

浏览 2700 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-11-20  

      在使用SQL Server中我们经常会使用标识列来做主键,一般情况下我们都将标识列设置成int类型,然后设置标识种子和增量。

      但是如果数据库中的数据过大,那么int类型数据可能不够用,改怎么办呢?

      在SQL Server中有一种数据类型UniqueIdentifier类型,该类型存储16字节的二进制值,为该列分配必须具有的唯一的标识符,因此该列的数值不可能存在重复,因此也可以作为主键来使用。

      据说这种数据类型是更具当前时间和服务器网卡地址随机生成,100万年之内不会出现重复的值,看来足够我们使用了。哈哈哈。

      设置某列的值为UniqueIdentifier类型,为非即可。

     

CREATE TABLE Test(
	[id] [uniqueidentifier] NOT NULL,
	[name] [varchar](20) NOT NULL,
	[comm] [varchar](100)
)

 

 

      然后插入数据的时候使用newID()函数插入数据即可。

     

insert into Test values(newID(),'TestForMe','This is just a test')

      看看执行以后的结果,这样生成的标识列如论如何也不会有重复,而且相信对我们的系统来说,够用了。呵呵。

 

论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics