- SQL Tutorial
- SQL - Home
- SQL - Overview
- SQL - RDBMS Concepts
- SQL - Databases
- SQL - Syntax
- SQL - Data Types
- SQL - Operators
- SQL - Expressions
- SQL Database
- SQL - Create Database
- SQL - Drop Database
- SQL - Select Database
- SQL - Rename Database
- SQL - Show Databases
- SQL - Backup Database
- SQL Table
- SQL - Create Table
- SQL - Show Tables
- SQL - Rename Table
- SQL - Truncate Table
- SQL - Clone Tables
- SQL - Temporary Tables
- SQL - Alter Tables
- SQL - Drop Table
- SQL - Delete Table
- SQL - Constraints
- SQL Queries
- SQL - Insert Query
- SQL - Select Query
- SQL - Select Into
- SQL - Insert Into Select
- SQL - Update Query
- SQL - Delete Query
- SQL - Sorting Results
- SQL Views
- SQL - Create Views
- SQL - Update Views
- SQL - Drop Views
- SQL - Rename Views
- SQL Operators and Clauses
- SQL - Where Clause
- SQL - Top Clause
- SQL - Distinct Clause
- SQL - Order By Clause
- SQL - Group By Clause
- SQL - Having Clause
- SQL - AND & OR
- SQL - BOOLEAN (BIT) Operator
- SQL - LIKE Operator
- SQL - IN Operator
- SQL - ANY, ALL Operators
- SQL - EXISTS Operator
- SQL - CASE
- SQL - NOT Operator
- SQL - NOT EQUAL
- SQL - IS NULL
- SQL - IS NOT NULL
- SQL - NOT NULL
- SQL - BETWEEN Operator
- SQL - UNION Operator
- SQL - UNION vs UNION ALL
- SQL - INTERSECT Operator
- SQL - EXCEPT Operator
- SQL - Aliases
- SQL Joins
- SQL - Using Joins
- SQL - Inner Join
- SQL - Left Join
- SQL - Right Join
- SQL - Cross Join
- SQL - Full Join
- SQL - Self Join
- SQL - Delete Join
- SQL - Update Join
- SQL - Left Join vs Right Join
- SQL - Union vs Join
- SQL Keys
- SQL - Unique Key
- SQL - Primary Key
- SQL - Foreign Key
- SQL - Composite Key
- SQL - Alternate Key
- SQL Indexes
- SQL - Indexes
- SQL - Create Index
- SQL - Drop Index
- SQL - Show Indexes
- SQL - Unique Index
- SQL - Clustered Index
- SQL - Non-Clustered Index
- Advanced SQL
- SQL - Wildcards
- SQL - Comments
- SQL - Injection
- SQL - Hosting
- SQL - Min & Max
- SQL - Null Functions
- SQL - Check Constraint
- SQL - Default Constraint
- SQL - Stored Procedures
- SQL - NULL Values
- SQL - Transactions
- SQL - Sub Queries
- SQL - Handling Duplicates
- SQL - Using Sequences
- SQL - Auto Increment
- SQL - Date & Time
- SQL - Cursors
- SQL - Common Table Expression
- SQL - Group By vs Order By
- SQL - IN vs EXISTS
- SQL - Database Tuning
- SQL Function Reference
- SQL - Date Functions
- SQL - String Functions
- SQL - Aggregate Functions
- SQL - Numeric Functions
- SQL - Text & Image Functions
- SQL - Statistical Functions
- SQL - Logical Functions
- SQL - Cursor Functions
- SQL - JSON Functions
- SQL - Conversion Functions
- SQL - Datatype Functions
- SQL Useful Resources
- SQL - Questions and Answers
- SQL - Quick Guide
- SQL - Useful Functions
- SQL - Useful Resources
- SQL - Discussion
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 | +---------------------+