📅  最后修改于: 2023-12-03 15:08:48.263000             🧑  作者: Mango
在 SQL Server 中,标识列(Identity Column)是一种用于自动为新记录生成唯一标识值的特殊类型的列。在插入新记录时,SQL Server 自动为标识列生成一个新的唯一值。有时我们需要获取表当前标识值,这篇文章将介绍如何在 SQL Server 中获取表当前标识值。
SCOPE_IDENTITY()
在插入新记录后,可以使用 @@IDENTITY
、SCOPE_IDENTITY()
或 IDENT_CURRENT
函数来获取当前表的标识值。SCOPE_IDENTITY()
函数返回插入当前作用域中的最后一行的标识列值。作用域是指当前会话(session)中的当前作用域。以下是使用 SCOPE_IDENTITY()
函数获取表当前标识值的示例:
INSERT INTO MyTable (Column1, Column2) VALUES ('Value1', 'Value2');
SELECT SCOPE_IDENTITY() AS CurrentIdentityValue;
返回的结果集将只包含一个名为 CurrentIdentityValue
的列,该列包含表当前标识值。
IDENT_CURRENT()
IDENT_CURRENT()
函数返回指定表或视图的当前标识值。以下是使用 IDENT_CURRENT()
函数获取表当前标识值的示例:
SELECT IDENT_CURRENT('MyTable') AS CurrentIdentityValue;
返回的结果集将只包含一个名为 CurrentIdentityValue
的列,该列包含表当前标识值。
@@IDENTITY
@@IDENTITY
函数返回执行 INSERT 语句后,最近生成的自动标识值。以下是使用 @@IDENTITY
函数获取表当前标识值的示例:
INSERT INTO MyTable (Column1, Column2) VALUES ('Value1', 'Value2');
SELECT @@IDENTITY AS CurrentIdentityValue;
返回的结果集将只包含一个名为 CurrentIdentityValue
的列,该列包含表当前标识值。
在 SQL Server 中,可以使用 SCOPE_IDENTITY()
、IDENT_CURRENT()
或 @@IDENTITY
函数来获取表当前标识值。其中,SCOPE_IDENTITY()
函数返回插入当前作用域中的最后一行的标识列值;IDENT_CURRENT()
函数返回指定表或视图的当前标识值;@@IDENTITY
函数返回执行 INSERT 语句后,最近生成的自动标识值。根据不同的需求选择不同的函数即可。