IDENT_CURRENT function returns the last identity
value generated for a specified table or view. The last identity
value generated can be for any session and any scope.
Let’s take an example for learning purpose
create table EmpTemp
(id int identity(1,1),
empName varchar(10))
Command(s) completed
successfully.
Here ID is an identity column which will gets
increment by one with every insert since the seed for the increment is set to 1.
Let’s insert few rows to EmpTemp table. Values for ID column is not required since it is an
identity column, so automatically on insertion of any row to the table set the
value of ID in corresponding row.
insert into EmpTemp(empName) values ('Aakhya')
insert into EmpTemp(empName) values ('Kruthika')
insert into EmpTemp(empName) values ('Aanandita')
insert into EmpTemp(empName) values ('Chandanika')
insert into EmpTemp(empName) values ('Ceitra')
insert into EmpTemp(empName) values ('Arasi')
Accede
to see the output of Select query
select * from EmpTemp
id empName
----------- ----------
1 Aakhya
2 Kruthika
3 Aanandita
4 Chandanika
5 Ceitra
6 Arasi
(6 row(s) affected)
Now
run the below query to see the result of IDENT_CURRENT. The IDENT_CURRENT
function takes only Table or View
name as parameter.
select IDENT_CURRENT('EmpTemp')
---------------------------------------
6
(1 row(s) affected
Now
insert one more row and then check this:
insert into EmpTemp(empName) values ('Siddhiksha')
(1 row(s) affected)
select IDENT_CURRENT('EmpTemp')
--------------------------------------
7
(1 row(s) affected)
What does the function do ?
CONCLUSION: This
always gives you the current id value from the table.
PART 2: Interesting to see!!! THE @IDENTITY
Run
the query below.
insert into
EmpTemp(empName)
values ('Sakshi')
(1 row(s) affected)
select IDENT_CURRENT('EmpTemp')
select @@IDENTITY
OUTPUT
---------------------------------------
8
Both
IDENT_CURRENT and @@IDENTITY that
means @@IDENTITY does
the same thing!!!!
Hang around and observe:
Open a new Query window and run the below query again:
select IDENT_CURRENT('EmpTemp')
---------------------------------------
8
(1 row(s) affected)
select @@IDENTITY
---------------------------------------
NULL
(1 row(s) affected)
Weird
and wonderful! correct ???
· IDENT_CURRENT returns the last identity value generated for
a specific table in any session and any scope.
@@IDENTITY returns the last identity value generated for any
table in the current session, across all scopes.
Post Reference: Vikram Aristocratic Elfin Share
No comments:
Post a Comment