当前位置:编程学习 > C#/ASP.NET >>

【提问】插入数据后,如何获得编号【在线放分】

插入一条数据到SQL SERVER当中
数据表中的第一项是自动编号

那么我们在插入数据后,如何获得这个生成的自动编号? --------------------编程问答-------------------- select top 1 id from table order by id desc --------------------编程问答-------------------- http://topic.csdn.net/u/20080710/11/d1468a96-a8e4-4b68-a151-cd38541d7c68.html --------------------编程问答--------------------
自动编号只增补渐吗? 
数据条目很多后,编号会出现循环的情况的吗? --------------------编程问答-------------------- 自动编号只增补渐吗? 

是的

数据条目很多后,编号会出现循环的情况的吗?

int 4 就是16位,足够你用了,如果觉得不够,可以用bigint
不用担心很多的问题。。。。 --------------------编程问答-------------------- 如果按照1楼那个朋友说的,在插入后再进行查询
相当于两次连接数据库,没有一次连接数据库的办法吗? --------------------编程问答-------------------- 来接分。。 --------------------编程问答-------------------- sql 语句:"insert into table(col, col2) values(@val1, @val2);select SCOPE_IDENTITY()"

int newID = Convert.ToInt32(cmd.ExecuteScarlar()); //你猜Insert会不会执行? 实际上Insert会执行的,就这么简单。


--------------------编程问答-------------------- 当运行完插入语句后,执行select @@identity就可得到自动生成的id

如果是sql server 最好用select SCOPE_IDENTITY() as id
因为@@identity全局的

同类还有IDENT_CURRENT('table')

IDENT_CURRENT 返回为任何会话和任何作用域中的特定表最后生成的标识值。IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回为任何会话和作用域中的特定表所生成的值。
@@IDENTITY 返回为当前会话的所有作用域中的任何表最后生成的标识值。
SCOPE_IDENTITY 返回为当前会话和当前作用域中的任何表最后生成的标识值

SCOPE_IDENTITY 和 @@IDENTITY 返回在当前会话中的任何表内所生成的最后一个标识值。但是,SCOPE_IDENTITY 只返回插入到当前作用域中的值;@@IDENTITY 不受限于特定的作用域。 --------------------编程问答-------------------- 这也行~ --------------------编程问答-------------------- select @@identity --------------------编程问答-------------------- @@IDENTITY  --------------------编程问答-------------------- insert into table(col, col2) values(@val1, @val2);
select @@identity --------------------编程问答--------------------
引用 12 楼 bbs_521 的回复:
insert into table(col, col2) values(@val1, @val2); 
select @@identity
--------------------编程问答-------------------- set @Ret = @@IDENTITY
return @Ret --------------------编程问答-------------------- @@identity --------------------编程问答-------------------- 最好,使用SELECT IDENT_CURRENT('TABLE'),因为@@identity时,如果有两个表进行insert操作。会出错。 --------------------编程问答-------------------- create proc GetID
  @name int,
  @returnvalue int out
as
insert into table(name) values(@name)
select @returnvalue=@@identity
return @returnvalue

这样可以吗? --------------------编程问答-------------------- insert into table(col, col2) values(@val1, @val2); 
select @@identity --------------------编程问答--------------------
引用 18 楼 stning 的回复:
insert into table(col, col2) values(@val1, @val2); 
select @@identity


正解!!
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,