select SCOPE_IDENTITY()用法

简介:

select SCOPE_IDENTITY()

返回上面操作的数据表最后row的IDENTITY 列的值;

返回插入到同一作用域中的 IDENTITY 列内的最后一个 IDENTITY 值。一个作用域就是一个模块——存储过程、触发器、函数或批处理。因此,如果两个语句处于同一个存储过程、函数或批处理中,则它们位于相同的作用域中。

SELECT   @@IDENTITY

返回上面操作最后一个数据表的最后row的IDENTITY 列的值;
创建表:

create   table  T_User(F_ID  int   identity ( 1 , 1 not   null ,F_Name  varchar ( 20 not   null )

插入数据:

insert   into  T_User(F_Name)  values ( ' 我是谁 ' Select   SCOPE_IDENTITY ()

存储过程:

CREATE   PROCEDURE   [ dbo ] . [ sp_User ] ( @F_Name   int AS
begin   tran  Insertinto_T_User
Insert   into   dbo.T_User(F_Name)  values ( @F_Name )
Select   SCOPE_IDENTITY ()
目录
相关文章
|
1月前
|
关系型数据库 索引
select for update 含义
select for update 含义
|
7月前
|
存储 SQL 关系型数据库
1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column的解决办法
1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column的解决办法
87 0
|
9月前
|
关系型数据库 MySQL 数据库
View ‘information_schema.SCHEMATA‘ references invalid table(s) or column(s) or function(s) or define
View ‘information_schema.SCHEMATA‘ references invalid table(s) or column(s) or function(s) or define
139 0
|
关系型数据库 MySQL 数据库
[Err] 1143 - SELECT command denied to user 'XX'@'%' for column 'XXX' in table 'XX'
[Err] 1143 - SELECT command denied to user 'XX'@'%' for column 'XXX' in table 'XX'
220 0
[Err] 1143 - SELECT command denied to user 'XX'@'%' for column 'XXX' in table 'XX'
test of duplicate control id
Created by Jerry Wang, last modified on Aug 21, 2015
test of duplicate control id
|
数据库
使用 scope_identity() 函数获得表的标识值
做开发的时候,我们经常要在执行一条语句后 获得数据库的自增ID值,最典型的例子就是在生成订单后,要返回订单ID,之前有一种不严谨的做法是,用select top 1 ID order by ID desc,值所以不严谨有一种说法是,在高并发用户的情况下,很可能在插入和查询之间又一次进行了插入操作,这样查询的结果就和实际ID不是对应的了。
887 0