sql语句返回主键SCOPE_IDENTITY()

时间:2024-01-12 13:14:36 

在sql语句后使用
SCOPE_IDENTITY()

当然您也可以使用 SELECT @@IDENTITY

但是使用 SELECT @@IDENTITY是去全局最新. 有可能取得值不正确.

示例:


insert into dbo.SNS_BlogData(userName) values('jiangyun') ;
SELECT SCOPE_IDENTITY()


获取SQL-SERVER数据库insert into操作的主键返回值,SCOPE_IDENTITY

插入一条记录后想要立刻获取其数据表中的主键返回值。这个主键是自动生成的,其实实现的方式有很多,比如再进行一次查询,获取出来。或者在插入数据之前取 出最大值,在最大值上面加一等等,方法很多,但是有些很不方便。
个人感觉最快的方式就是,在插入数据后直接获取主键的值,然后返回过来。
方法如下:
sql语句如下:
INSERT INTO tableName (fieldname ...) values (value ...) SELECT @@IDENTITY AS returnName;
在sql语句中加入SELECT @@IDENTITY AS returnName;用来获取主键的值
在程序中 获取返回值:


public int sqlexecutereader(string sql)
{
DBopen();
SqlCommand myComm = new SqlCommand(sql, Connection);
int newID = Convert.ToInt32(myComm.ExecuteScalar());
DBclose();
return newID;
}


当然在此处主键是int类型的自动增加的。DBopen();DBclose();的操作在此就 不多说了。

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()

标签:返回主键,SCOPE,IDENTITY
0
投稿

猜你喜欢

  • 15行Python代码带你轻松理解令牌桶算法

    2021-05-05 01:18:05
  • vue-cli的eslint相关用法

    2024-05-02 17:08:46
  • SQL提取数据库表名及字段名等信息代码示例

    2024-01-26 23:18:54
  • css设计小巧三条

    2008-01-21 13:04:00
  • Mysql limit 优化,百万至千万级快速分页 复合索引的引用并应用于轻量级框架

    2024-01-14 00:42:39
  • Python selenium文件上传方法汇总

    2022-12-01 04:47:29
  • Python异常处理与反射相关问题总结

    2022-02-09 18:20:32
  • python正则过滤字母、中文、数字及特殊字符方法详解

    2022-02-20 10:14:47
  • Python 打印中文字符的三种方法

    2022-11-14 10:22:07
  • Python转换itertools.chain对象为数组的方法

    2022-10-27 08:38:16
  • django views重定向到带参数的url

    2023-08-18 14:56:47
  • keras的load_model实现加载含有参数的自定义模型

    2021-03-05 08:18:56
  • CentOS安装SQL Server vNext CTP1教程

    2024-01-27 22:16:26
  • 解决python大批量读写.doc文件的问题

    2023-11-05 03:20:02
  • vue的hash值原理也是table切换实例代码

    2023-07-02 16:54:52
  • 详解SQL Server数据库架构和对象、定义数据完整性

    2024-01-23 06:48:16
  • 有用的SQL语句(删除重复记录,收缩日志)

    2024-01-19 09:55:24
  • 解决python spyder 突然打不开的问题

    2022-07-07 19:43:06
  • Python中使用Tkinter模块创建GUI程序实例

    2023-01-22 09:37:38
  • encodeURIComponent用法UrlEncode与URLEncode.encode()

    2009-05-11 12:40:00
  • asp之家 网络编程 m.aspxhome.com