SQL - IDENT_CURRENT() Function



The SQL IDENT_CURRENT() function returns the last identity value generated for a specified table or view on an identity column. The last identity value generated can be for any session and any scope.

When the IDENT_CURRENT value is NULL it implies that the table has never contained rows or has been truncated, in this case the IDENT_CURRENT function returns the seed value (The seed is a value that is inserted into an identity column for the first row loaded into the table; the default value is 1.).

IDENT_CURRENT is similar to the SQL server identity functions SCOPE_IDENTITY and @@IDENTITY. All three functions returns last-generated identity values.

  • IDENT_CURRENT returns the last identity value generated for a specified table in any session and scope.

  • SCOPE_IDENTITY returns the last identity value generated for any table in the current session and the current scope.

  • @@IDENTITY returns the last identity value generated for any table in the current session across all scopes.

Note − The result of IDENT CURRENT on a view with a join is NULL. This probably applies irrespective of whether only one joined table or several joined tables have an identity column.

Syntax

Following is the syntax of the SQL IDENT_CURRENT() function −

SELECT IDENT_CURRENT('table_or_view');

where table_or_view is the name of the table or view whose identity value is returned. table_or_view is a varchar with no default value.

Example

Let's look at the example of IDENT_CURRENT function in SQL

To demonstrate this, we are creating two tables using a CREATE statement named "AAA" and "BBB", both of which contain an identity column, as shown below.

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

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

Now, we have to show the created table using the SELECT statement.

SELECT * FROM AAA;
SELECT * FROM BBB;

Let's see the current identity value in these table using the SQL IDENT_CURRENT function.

Following is the query −

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

Output

Following is the output of the above query, which shows the identity value by default, which is 1.

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

As we can see, the current identity value is 1 in the above output for both tables, which is the seed value of the identity column as no record has been inserted yet into those tables.

Example

In the following example, we are inserting some values in both tables and displaying the current identity of these tables.

Let's insert record into these tables using the INSERT statement

-- 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');

Let's display the inserted records using the SELECT statement

-- AAA Table -
SELECT * FROM AAA;

-- BBB Table -
SELECT * FROM BBB;

Following is the details of AAA table −

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

Following is the details of BBB table −

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

Let's see the last identity value in the tables using the IDENT_CURRENT function.

following is the query −

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

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

Output

Following is the output of the above query −

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