黑马程序员技术交流社区

标题: sql中输出自增字段 [打印本页]

作者: 梁健1    时间: 2012-8-6 18:15
标题: sql中输出自增字段
cmd.CommandText="insert into tableName(colName1,colName2) output inserted.Id values('***','***')";
int i=Convert.ToInt32(cmd.ExecuteSalar());
1.执行完这两句话后,输出的是自增字段的当前值,还是当前值减一?
2.第一句中的sql语句要不要执行插入操作?‘***’‘***’这条信息会插入到数据库中吗?
3.如果单纯的想要得到自增字段的当前值,同时又不想在进行插入数据,有这类的方法吗?就是说,仅仅想得到自增字段的值,却不想添加数据?
作者: 梁永斌    时间: 2012-8-6 19:04
没明白你的意思,是想得到插入当前数据的得到当前数据自增字段,还是想得到下次插入数据时的自增列,如果是第一种的话上边是一种方法,你也可以自己写个存储过程来得到,
create proc abc
@b nchar(50)
as
begin
insert into aa(uname) values(@b)
select max(id) from aa
end

不过如果你想的是第二中的话,有什么意思呢,想不明白你为啥想这么做,理论上应该也是有方法的,不过没有这么简单,
作者: 彭书雄    时间: 2012-8-6 19:40
自增字段只能设置在整形变量中,这个变量在插入的时候可以忽略
当你插入一个数据之后他就会自动加1
你的sql语句必须执行之后数据库才拥有数据
自增变量不可复制修改 只能读取
如果想查找最大的id
select max(id) from table_name




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2