社区
C#
帖子详情
如何返回最后插入到sql中的自动增长标识值
SmilingKevin
2010-11-07 01:43:37
我在c#程序中向数据库中插入了一条数据,该表的主键是自动增长的,现在要如何去获取刚刚插入的这条数据的主键值呢?
...全文
187
8
打赏
收藏
如何返回最后插入到sql中的自动增长标识值
我在c#程序中向数据库中插入了一条数据,该表的主键是自动增长的,现在要如何去获取刚刚插入的这条数据的主键值呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
清山博客
2010-11-07
打赏
举报
回复
Scope_identity
实例:
http://www.cnblogs.com/yank/archive/2008/04/16/1156713.html
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()
xrongzhen
2010-11-07
打赏
举报
回复
用事务 begin transaction insert... select max(id) from tb commit transaction
以专业开发人员为伍
2010-11-07
打赏
举报
回复
不管你得到什么结果,给你一个建议,认真测试一下当插入一条记录的操作会带来附加的触发器、存储过程代码被执行,其中有其它语句插入数据,那么那种结果还正确吗?
buer
2010-11-07
打赏
举报
回复
Sql块操作
string sql="insert table(f1,f2) values(v1,va2) "
sql+=" select @@identity ";
SmilingKevin
2010-11-07
打赏
举报
回复
[Quote=引用 2 楼 kankanwenzi 的回复:]
呵呵,我刚刚转了个贴,欢迎去看http://blog.csdn.net/kankanwenzi/archive/2010/11/07/5993215.aspx
[/Quote]
SQL SERVER要怎么做呢
bbb332
2010-11-07
打赏
举报
回复
用select语句查出来不可以吗?
kankanwenzi
2010-11-07
打赏
举报
回复
呵呵,我刚刚转了个贴,欢迎去看http://blog.csdn.net/kankanwenzi/archive/2010/11/07/5993215.aspx
phil999
2010-11-07
打赏
举报
回复
如果是 sql server,那么在同一个事务中执行 select @@identity
这样的低层的操作代码不好看,如果你用 entity framework 或者 nhibernate,那么保存之后,对象的状态自动被更新,你可以通过对象属性得到这个值
SQL
Server
插入
记录后获取
自动
增长
列的
值
在关系数据库
中
,我们经常会给一个表的主键设置为自增列,而在开发过程
中
,有时又会需要在
插入
一条记录后获得它的主键
值
,我们可以通过创建带有输出参数的存储过程来完成这一任务。在T-
SQL
中
,有三个函数可以用来检索
标识
列
值
:SCOPE_IDENTITY, @@IDENTITY, IDENT_CURRENT. 其
中
,SCOPE_IDENTITY为微软推荐使用函数,它
返回
当前执行范围内的
最后
一个
标识
值
,
@@identity与scope_identity()函数的区别
@@IDENTITY 和SCOPE_IDENTITY
返回
在当前会话
中
的任何表内所生成的
最后
一个
标识
值
。 但是,SCOPE_IDENTITY 只
返回
插入
到当前作用域
中
的
值
;@@IDENTITY 不受限于特定的作用域。
SQL
标识
符
自动
增长
添加及重置的语句(自学笔记记录)
DBCC CHECKIDENT 命令
标识
更正或所做的更正 DBCC CHECKIDENT ( 'table_name', NORESEED ) 不重置当前
标识
值
。DBCC CHECKIDENT
返回
一个报告,它指明当前
标识
值
和应使用的
标识
值
。 当
标识
列
中
存在 PRIMARY KEY 或 UNIQUE 约束时,无效
标识
信息会导致错误消息 2627。 DBCC CHECKIDENT ( 'table_name' ) or DBCC CHECKIDENT ( 'table_name', RESEED ...
my
sql
中
的
标识
列以及
标识
列/
自动
增长
列怎么insert
插入
数据(
标识
列/
自动
增长
列的
插入
方式)
下面有截图和代码 #
标识
列 /* 又称为自
增长
列 含义:可以不用手动的
插入
值
,系统提供默认的序列
值
特点: 1、
标识
列必须和主键搭配吗?不一定,但要求是一个key 2、一个表可以有几个
标识
列?至多一个! 3、
标识
列的类型只能是数
值
型 4、
标识
列可以通过 SET auto_increment_increment=3;设置步长 可以通过 手动
插入
值
,设置起始
值
*/ #一、创建表时设置
标识
...
如何获取
SQL
Sever
中
自
增长
列的下一行
标识
值
?(获取刚
插入
的
标识
值
)
Table表
中
有一字段为自
增长
列(也称
标识
列,即Identity Increment),那么如何获取该列的下一行
标识
值
呢,或刚
插入
的
标识
值
? 经过一番探索,下面的代码有效: --获取刚
插入
的
标识
值
SELECT IDENT_CURRENT(TableName) from TableName --获取下一行的
标识
值
declare @NextIdentity in
C#
111,129
社区成员
642,535
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章