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

摘要:
插入记录后,您希望立即在其数据表中获取主键返回值。最快的方法是在插入数据后直接获取主键值,然后返回。方法如下:sql语句如下:INSERTINTOtableNamevaluesSELECT@@IDENTITYASERTurnName;添加SELECT@@IDENTITYASreturnName;用于获取主键的值用于获取程序中的返回值:publicintsqlexecuteheader{DBopen();SqlCommandmyCommand=newSqlCommand;intnewID=Convert.ToInt32;DBclose();returnnewID;}当然,这里主键的类型是int。selectSCOPE_IDENTITY()返回上述操作数据表中最后一行的IDENTITY列值;返回插入同一作用域中IDENTITY列的最后一个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 列的值;
创建表:

获取SQLSERVER数据库insert into操作的主键返回值,SCOPE_IDENTITY第1张create table T_User(F_ID int identity(1,1not null,F_Name varchar(20not null)

插入数据:

获取SQLSERVER数据库insert into操作的主键返回值,SCOPE_IDENTITY第1张insert into T_User(F_Name) values('我是谁'Select SCOPE_IDENTITY()

存储过程:

获取SQLSERVER数据库insert into操作的主键返回值,SCOPE_IDENTITY第1张CREATE PROCEDURE [dbo].[sp_User](@F_Name intAS
获取SQLSERVER数据库insert into操作的主键返回值,SCOPE_IDENTITY第1张
begin tran Insertinto_T_User
获取SQLSERVER数据库insert into操作的主键返回值,SCOPE_IDENTITY第1张
Insert into  dbo.T_User(F_Name) values(@F_Name)
获取SQLSERVER数据库insert into操作的主键返回值,SCOPE_IDENTITY第1张
Select SCOPE_IDENTITY()
 

免责声明:文章转载自《获取SQLSERVER数据库insert into操作的主键返回值,SCOPE_IDENTITY》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Linux系统下用find命令查找最近修改过的文件Mac配置环境变量下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Postgre Sql获取最近一周、一月、一年日期函数

  使用Postgre Sql获取近一周、一年、一月等系统函数调用如下,使用方面相对于Ms Sql server 容易了许多。 --当前时间 select now(); --current_timestamp 同 now() 函数等效 select current_timestamp --近一周 select now() - inte...

PostgresQL中的NUlls first/last功能

Nulls first/last功能简介Nulls first/last功能主要用于order by排序子句中,影响空值Null在排序结果中的位置。简单来说,Nulls first表示Null值在排序时一直排在所有值的前面,也就是处理order by a desc时PostgresQL执行器认为Null值大于所有值,而order by a或order by...

mybatis父查询值嵌套传递/column传入多个参数值197

mybatis中collection的column传入多个参数值(使用父查询的映射值) property description column 数据库的列名或者列标签别名。与传递给resultSet.getString(columnName)的参数名称相同。注意: 在处理组合键时,您可以使用column=“{prop1=col1,prop2=co...

2015-8-25-关于后端的知识以及常用函数整理

首先结构一般是分为B/S(Browser/Server)和C/S(Client/Server)的,我们所用的是基于B/S结构的。 其中这里的B主要是一些控件的组成的页面,主要是由JScript控制的, 其中的S主要是由SSL代码控制的,又分为Server Script和Data Sources,首先来说说两者的一些区别(Server Script用SS代替...

黑马lavarel教程---5、模型操作(AR模式)

黑马lavarel教程---5、模型操作(AR模式) 一、总结 一句话总结: AR: ActiveRecord :Active Record(活动记录),是一种领域模型模式,特点是一个模型类对应关系型数据库中的一个表,而模型类的一个实例对应表中的一行记录。 1、Eloquent ORM:用模型操作数据库? ORM是对象关系模型 eloquent:英 ['e...

Oracle视图和PL SQL编程.

Oracle中的视图 在Oracle数据库中视图是数据库中特有的对象。视图主要用于数据查询,它不会存储数据(物化视图除外)。这是视图和数据表的重要区别。 视图的数据来源于一个或等多个表中的数据,可以利用视图进行查询、插入、更新和删除数据,操作视图就是间接操作数据库表。 通常情况下,视图主要用于查询,不提倡通过视图而更新与视图相关的表,因为视图中的数据只是一...