SQL - IDENT_CURRENT() 函数



SQL 的IDENT_CURRENT()函数返回为指定表或视图上的标识列生成的最后一个标识值。生成的最后一个标识值可以是任何会话和任何范围。

当 IDENT_CURRENT 值为 NULL 时,表示该表从未包含行或已被截断,在这种情况下,IDENT_CURRENT 函数返回种子值(种子是插入到表中加载的第一行的标识列中的值;默认值为 1)。

IDENT_CURRENT 类似于 SQL Server 标识函数 SCOPE_IDENTITY 和 @@IDENTITY。所有三个函数都返回最后生成的标识值。

  • IDENT_CURRENT 返回在任何会话和范围内为指定表生成的最后一个标识值。

  • SCOPE_IDENTITY 返回在当前会话和当前范围内为任何表生成的最后一个标识值。

  • @@IDENTITY 返回在当前会话中跨所有范围为任何表生成的最后一个标识值。

注意 - 对具有连接的视图进行 IDENT CURRENT 操作的结果为 NULL。这可能适用于无论只有一个连接表还是多个连接表具有标识列。

语法

以下是 SQL IDENT_CURRENT() 函数的语法:

SELECT IDENT_CURRENT('table_or_view');

其中 table_or_view 是返回其标识值的表或视图的名称。table_or_view 是一个 varchar,没有默认值。

示例

让我们看一下 SQL 中 IDENT_CURRENT 函数的示例

为了演示这一点,我们使用 CREATE 语句创建了两个名为“AAA”和“BBB”的表,这两个表都包含一个标识列,如下所示。

CREATE TABLE AAA(
   ID INT IDENTITY(1, 1),
   NAME VARCHAR(30)
   );

CREATE TABLE BBB(
   ID INT IDENTITY(1,1),
   NAME VARCHAR(30)
   );

现在,我们必须使用 SELECT 语句显示创建的表。

SELECT * FROM AAA;
SELECT * FROM BBB;

让我们使用 SQL IDENT_CURRENT 函数查看这些表中的当前标识值。

以下是查询:

SELECT IDENT_CURRENT('AAA') AS LAST_IdentityValue;
SELECT IDENT_CURRENT('BBB') AS LAST_IdentityValue;

输出

以下是上述查询的输出,它显示了默认的标识值,即 1。

 AAA Table −
+---------------------+
| LAST_IdentityValue  |
+---------------------+
|                  1  |
+---------------------+
 BBB Table −
+---------------------+
| LAST_IdentityValue  |
+---------------------+
|                  1  |
+---------------------+

正如我们所看到的,上述输出中两个表的当前标识值都是 1,这是标识列的种子值,因为尚未将任何记录插入到这些表中。

示例

在以下示例中,我们将在两个表中插入一些值并显示这些表的当前标识。

让我们使用 INSERT 语句将记录插入这些表

-- AAA Table -
INSERT INTO AAA (NAME) VALUES('tutorialspoint');
INSERT INTO AAA (NAME) VALUES('Sarika Singh');

-- BBB Table -
INSERT INTO BBB (NAME) VALUES('tutorix');
INSERT INTO BBB (NAME) VALUES('Aman');
INSERT INTO BBB (NAME) VALUES('Vivek');

让我们使用 SELECT 语句显示插入的记录

-- AAA Table -
SELECT * FROM AAA;

-- BBB Table -
SELECT * FROM BBB;

以下是 AAA 表的详细信息:

+----+-----------------+
| ID |  NAME           |
+----+-----------------+
|  1 |  tutorialspoint |
+----+-----------------+
|  2 |	Sarika Singh   |
+----+-----------------+

以下是 BBB 表的详细信息:

+----+-----------------+
| ID |  NAME           |
+----+-----------------+
|  1 |  tutorix        |
+----+-----------------+
|  2 |	 Aman          |
+----+-----------------+
|  3 |   Vivek         |
+----+-----------------+

让我们使用 IDENT_CURRENT 函数查看表中的最后一个标识值。

以下是查询:

-- AAA Table -
SELECT IDENT_CURRENT('AAA') AS LAST_IdentityValue;

-- BBB Table -
SELECT IDENT_CURRENT('BBB') AS LAST_IdentityValue;

输出

以下是上述查询的输出:

 AAA Table −
+---------------------+
| LAST_IdentityValue  |
+---------------------+
|                  2  |
+---------------------+
 BBB Table −
+---------------------+
| LAST_IdentityValue  |
+---------------------+
|                  3  |
+---------------------+
sql-datatype-functions.htm
广告