SqlServer2008实例47IDENTITY和uniqueidentifier函数

    目录

1.返回最后一个标识键

2.返回标识列的种子和增量值

3.创建新的uniqueidentifier值


    IDENTITY列属性定义在表的某个列上,并且允许我们为表中的一个列定义自增的数字值。
    和确保表中唯一的IDENTITY列不同,ROWGUIDCOL属性确保更商级别的唯一。这种唯一的ID保存在uniqueidentifier数据类型中,并且由NEWID系统函数生成。也可以使用NEWSEQUENTIALID系统函数来产生uniqueidentifier返回类型;但是,它与NEWID不同,因为每个新生成的GUID都大于其他服务器范围内生成的GUID。因为NEWSEQUENTIALID在每次执行时都产生更大的值,这种行为会减少键的页分裂和随机页查找。

1.返回最后一个标识键

    示例1:使用IDENT_CURRENT函数来返回某个表最后生成的标识值。本命令接受一个参数:要运算的表名。

USE AdventureWorks
GO

SELECT IDENT_CURRENT('Production.Product') LastIdentityValue

 示例2:    使用SCOPE_IDENTITY获取最后生成的标识值:

USE AdventureWorks
GO

--示例插入,在表中生成IDENTITY值
INSERT HumanResources.Department
(Name,GroupName)
VALUES('TestDept','TestGroup')

--任何生成的最后标识值
--在当前会话中,当前作用域中
SELECT SCOPE_IDENTITY()

示例3:使用和@@IDENTITY函数获取最后生成的标识值

SELECT @@IDENTITY

       如果希望获取跨任何会话或作用域的某个表的最新IDENTITY值,可以使用IDENT_CURRENT。如果你希望获取当前作用域和当前会话中的任何表的最新IDENTITY值,可以使用SCOPE_IDENTITY。如果希望得到当前会话任何作用域中任何表的最后IDENTITY值,可以使用@@IDENTITY。

2.返回标识列的种子和增量值

    IDENT_INCT函数显示某个表或者引用视图的IDENTITY列的原始增量值。IDENT_SEED显示某个表或引用视图的IDENTITY列上原始定义的种子值。这些函数对于检测插入行时IDENTITY列的增量和种子值很有用。
    示例:返回某个表的标识增量和种子:

USE AdventureWorks
GO

SELECT IDENT_INCR('Production.Product') IdentIncr,
       IDENT_SEED('Production.Product') IdentSeed

3.创建新的uniqueidentifier值

     NEWID函数用于创建uniqueidentifier数据类型的值。

   示例1:在SELECT语句中返回一个新的uniqueidentifier值

SELECT NEWID()

 

示例2:

--创建一个使用NEWID函数作为默认值的新临时表
CREATE TABLE #T4
(MyValue uniqueidentifier NOT NULL DEFAULT NEWID())

--插入一个新值
INSERT #T4 DEFAULT VALUES

--从表中获取这个值
SELECT MyValue
FROM #T4

示例3:    NEWSEQUENTIALID也可以用来生成新的GUID值,只有在这种情况下,计算机上每个新生成的值才会都大于之前生成的任何值。

--创建新的临时表,并插入5行
CREATE TABLE #T5
(MyValue uniqueidentifier NOT NULL DEFAULT NEWSEQUENTIALID(),
 InsertDT datetime2 NOT NULL DEFAULT SYSDATETIME())
 GO
 
 INSERT #T5 DEFAULT VALUES
 INSERT #T5 DEFAULT VALUES
 INSERT #T5 DEFAULT VALUES
 INSERT #T5 DEFAULT VALUES
 INSERT #T5 DEFAULT VALUES
 
 --查询表,并以uniqueidentifier值排序
 SELECt MyValue,InsertDT
 FROM #T5
 ORDER BY MyValue

 

©️2020 CSDN 皮肤主题: 编程工作室 设计师:CSDN官方博客 返回首页