介绍SQL2005 引入的按顺序生成的全局唯一标识符NEWSEQUENTIALID()

----------------------------------------------------------------------------------

-- Author : htl258(Tony)

-- Date   : 2010-05-12 02:19:13

-- Version: Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (Intel X86)

--          Jul  9 2008 14:43:34

--          Copyright (c) 1988-2008 Microsoft Corporation

--          Developer Edition on Windows NT 5.1 <X86> (Build 2600: Service Pack 2)

-- Blog   : http://blog.csdn.net/htl258

-- Subject: 介绍SQL2005 引入的按顺序生成的全局唯一标识符NEWSEQUENTIALID

----------------------------------------------------------------------------------

-- NEWSEQUENTIALID()函数返回个字节的uniqueidentifier,NEWID()的主要区别是:

-- NEWSEQUENTIALID()新生成的值大于上一次生成的值,不像NEWID()是不确定的,该函数不能

-- 在查询中直接调用,只能在CREATE TABLE 语句或ALTER TABLE 语句中'uniqueidentifier'

-- 类型的列的DEFAULT 表达式中使用。

 

--> 生成测试数据表: [tb]

IF OBJECT_ID('[tb]') IS NOT NULL

    DROP TABLE [tb]

GO

CREATE TABLE [tb] (id uniqueidentifier DEFAULT NEWSEQUENTIALID(),[a] [int],[b] [int])

INSERT INTO [tb]([a],[b])

SELECT '1','2' UNION ALL

SELECT '2','3' UNION ALL

SELECT '4','5'

 

SELECT * FROM [tb]

/*

id                                   a           b

------------------------------------ ----------- -----------

8783E9B7-2C5D-DF11-A05C-001CBF7C5A9C 1           2

8883E9B7-2C5D-DF11-A05C-001CBF7C5A9C 2           3

8983E9B7-2C5D-DF11-A05C-001CBF7C5A9C 4           5

 

(3 行受影响)

*/

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值