sql语句返回主键SCOPE_IDENTITY()

 更新时间:2011年09月22日 00:09:32   作者:  
sql语句返回主键SCOPE_IDENTITY()
在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()

相关文章

  • SQLSERVER 语句交错引发的死锁问题案例详解

    SQLSERVER 语句交错引发的死锁问题案例详解

    这篇文章主要介绍了SQLSERVER 语句交错引发的死锁研究,要解决死锁问题,个人感觉需要非常熟知各种隔离级别,尤其是 可提交读 模式下的 CURD 加解锁过程,这一篇我们就来好好聊一聊
    2023-02-02
  • SQL Server 2014 数据库中文版安装图文教程

    SQL Server 2014 数据库中文版安装图文教程

    这篇文章主要介绍了SQL Server 2014 数据库中文版安装图文教程,需要的朋友可以参考下
    2021-05-05
  • sql编程工具Sql Prompt下载及安装破解图文教程

    sql编程工具Sql Prompt下载及安装破解图文教程

    SQL Prompt是一款拥有SQL智能提示功能的SQL Server和VS插件。SQL Prompt能根据数据库的对象名称,语法和用户编写的代码片段自动进行检索,智能的为用户提供唯一合适的代码选择。自动脚本设置为用户提供了简单的代码易读性--这在开发者使用的是不大熟悉的脚本时尤其有用
    2014-08-08
  • Transact_SQL 小手册

    Transact_SQL 小手册

    Transact_SQL 小手册...
    2006-12-12
  • centos7部署SqlServer2019的实现步骤

    centos7部署SqlServer2019的实现步骤

    最近工作需要,需要在服务器上部署一个sql server 数据库,本文主要介绍了centos7部署SqlServer2019的实现步骤,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • SQL 查询性能优化 解决书签查找

    SQL 查询性能优化 解决书签查找

    当优化器所选择的非聚簇索引只包含查询请求的一部分字段时,就需要一个查找(lookup)来检索其他字段来满足请求
    2012-08-08
  • SQL设置SQL Server最大连接数及查询语句

    SQL设置SQL Server最大连接数及查询语句

    今天遇到了关于Sql Server最大连接数(Max Pool Size)的问题,后来通过查找一些资料解决了,所以想着总结下关于SQL Server最大连接数的内容,所以这篇文章主要介绍了SQL设置SQL Server最大连接数与查询语句,有需要的朋友们可以参考借鉴。
    2016-12-12
  • SQL Server中数据行批量插入脚本的存储实现

    SQL Server中数据行批量插入脚本的存储实现

    这篇文章主要介绍了SQL Server中数据行批量插入脚本的存储实现 的相关资料,需要的朋友可以参考下
    2015-12-12
  • SQL实现模糊查询的四种方法总结

    SQL实现模糊查询的四种方法总结

    本文主要介绍了SQL实现模糊查询的四种方法总结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • SQL数据分页查询的方法

    SQL数据分页查询的方法

    这篇文章主要为大家详细介绍了SQL数据分页查询的四种方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11

最新评论