----------------------------------------------------------------------------------
-- 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.youkuaiyun.com/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 行受影响)
*/