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
廣告