📜  如何在 sql server 中获取表当前标识值 - SQL (1)

📅  最后修改于: 2023-12-03 15:08:48.263000             🧑  作者: Mango

如何在 SQL Server 中获取表当前标识值 - SQL

在 SQL Server 中,标识列(Identity Column)是一种用于自动为新记录生成唯一标识值的特殊类型的列。在插入新记录时,SQL Server 自动为标识列生成一个新的唯一值。有时我们需要获取表当前标识值,这篇文章将介绍如何在 SQL Server 中获取表当前标识值。

方法一: 使用 SCOPE_IDENTITY()

在插入新记录后,可以使用 @@IDENTITYSCOPE_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 语句后,最近生成的自动标识值。根据不同的需求选择不同的函数即可。