SQL Server/T-SQL Tutorial/Sequence Indentity/SCOPE IDENTITY

Материал из SQL эксперт
Перейти к: навигация, поиск

Last identity value generated for any table in the current session, for the current scope

5> SELECT SCOPE_IDENTITY()
6>


SELECT SCOPE_IDENTITY()

1> CREATE TABLE customer
2> (
3> cust_id      smallint        IDENTITY(100, 20)  NOT NULL,
4> cust_name    varchar(50)     NOT NULL
5> )
6> GO
1>
2> INSERT customer (cust_name) VALUES ("AAA Gadgets")
3> SELECT SCOPE_IDENTITY()
4> GO
(1 rows affected)
----------------------------------------
                                     100
(1 rows affected)
1>
2> drop table customer;
3> GO


Using the SCOPE_IDENTITY() Function

SCOPE_IDENTITY() returns the last IDENTITY value inserted by your session into any table that has an IDENTITY column, but only in the current scope.
A scope is a batch, a stored procedure, a trigger, or a function.
7>
8> CREATE TABLE MyTable (
9>  key_col int NOT NULL IDENTITY (1,1),
10>  abc     char(1) NOT NULL
11> )
12> INSERT INTO MyTable VALUES ("a")
13> INSERT INTO MyTable VALUES ("b")
14> INSERT INTO MyTable VALUES ("c")
15> SELECT * FROM MyTable ORDER BY key_col
16>
17>
18>
19> DECLARE @mylastident AS int
20> SET @mylastident = SCOPE_IDENTITY ()
21> PRINT @mylastident
22>
23> drop table MyTable
24> GO
(1 rows affected)
(1 rows affected)
(1 rows affected)
key_col     abc
----------- ---
          1 a
          2 b
          3 c
(3 rows affected)
3
1>