sql语句返回主键SCOPE_IDENTITY()

来源:asp之家 时间:2011-09-30 11:28:45 

在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
投稿

猜你喜欢

  • 学习JSON.stringify的9大特性和转换规则

    2024-04-23 09:29:12
  • 百度百科中的asp词条:什么是asp

    2008-10-11 14:38:00
  • php中session_id()函数详细介绍,会话id生成过程及session id长度

    2023-11-24 08:01:00
  • MySQL中使用去重distinct方法的示例详解

    2024-01-28 04:37:10
  • vscode安装rainbow-fart(鼓励师)插件

    2022-05-09 14:11:42
  • 数字人组件反写[asp组件开发实例2]

    2009-06-09 13:15:00
  • 瀑布流布局浅析

    2011-09-16 20:18:09
  • python分布式环境下的限流器的示例

    2023-07-11 19:25:38
  • 用python写测试数据文件过程解析

    2022-03-24 16:54:57
  • 巧用Dreamweaver MX控制页面元素

    2009-09-13 18:38:00
  • 详解Python中的条件判断语句

    2022-05-03 09:33:28
  • mysql建立自定义函数的问题

    2024-01-19 06:26:52
  • django1.8使用表单上传文件的实现方法

    2022-04-28 11:32:02
  • oracle数据排序后获取前几行数据的写法(rownum、fetch方式)

    2023-07-02 01:15:09
  • js图片随机显示技巧

    2007-08-19 20:20:00
  • IE地址栏显示网站图标制作方法

    2007-10-13 11:08:00
  • matplotlib事件处理基础(事件绑定、事件属性)

    2023-02-02 19:34:32
  • Perl中chomp和chop的区别介绍

    2023-12-03 18:09:43
  • php+正则将字符串中的字母数字和中文分割

    2024-04-10 10:56:42
  • Django QuerySet查询集原理及代码实例

    2023-04-06 01:30:18
  • asp之家 网络编程 m.aspxhome.com