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

猜你喜欢

  • asp MYSQL出现问号乱码的解决方法

    2011-04-15 11:13:00
  • 经验总结:ASP与存储过程解析

    2008-11-07 13:33:00
  • ASP + Serv-u 实现FTP的代码

    2009-02-02 09:52:00
  • 让IE8支持eWebEditor在线编辑器

    2010-02-28 10:36:00
  • 浅析Banner构成与创意设计

    2009-11-28 16:25:00
  • HTML标签tbody的用法

    2009-11-02 10:11:00
  • FrontPage2002简明教程六:图片库

    2008-09-17 11:30:00
  • 组件:Adodb.Stream 用法介绍

    2008-10-09 12:39:00
  • 15个网页排版例子赏析

    2008-01-06 16:38:00
  • 跨平台、多浏览器页面测试

    2008-06-24 11:54:00
  • WEB界面设计五种特征

    2010-03-16 12:34:00
  • asp函数转换xml中的实体字符[转义符]

    2008-10-16 17:07:00
  • EasyASP v1.5发布(包含数据库操作类,原clsDbCtrl.asp)第1/2页

    2011-04-08 10:40:00
  • ASP判断E-Mail的合法性,以及过滤邮箱字符

    2010-05-27 12:23:00
  • css学习笔记:div在IE6下无法遮盖select

    2009-04-30 13:21:00
  • SQL学习笔记四 聚合函数、排序方法

    2011-09-30 11:33:29
  • SQL Server 2000安装图解教程

    2009-09-09 19:59:00
  • ASP利用TCPIP.DNS组件实现域名IP查询

    2010-02-26 11:25:00
  • 淘宝2011新版首页开发实践

    2011-01-20 20:07:00
  • 浅析SQL Server 2008企业级新特性

    2008-11-24 17:01:00
  • asp之家 网络编程 m.aspxhome.com