SQL SERVER 自增数据表,如何查询自增值的最大值
比如,现在数据库里边这个自增字段存在的值是5,6可能已经被人删掉了,我如何知道下次我添加数据的时候就是7呢?我想在添加之前就知道我添加的值是7。。。??...
比如,现在数据库里边这个自增字段存在的值是5,6可能已经被人删掉了,我如何知道下次我添加数据的时候就是7呢?
我想在添加之前就知道我添加的值是7。。。 ?? 展开
我想在添加之前就知道我添加的值是7。。。 ?? 展开
9个回答
引用badkano的回答:
使用max函数即可。
如:
ID NAME
1 张三
2 李四
3 王五
4 赵六
5 孙七
其中ID是自增字段。
使用sql语句如下:
select max(ID) ID from 表名;结果显示为5,则5就是这个自增字段的最大值。
使用max函数即可。
如:
ID NAME
1 张三
2 李四
3 王五
4 赵六
5 孙七
其中ID是自增字段。
使用sql语句如下:
select max(ID) ID from 表名;结果显示为5,则5就是这个自增字段的最大值。
展开全部
max函数只能取得列的当前最大值,以上为例,如果把ID=5的行删了,max=4,而实际上ID保留的当前值依旧是5,下一次写入值6。
正确函数:ident_current('表名')
正确函数:ident_current('表名')
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
问题补充:比如,现在数据库里边这个自增字段存在的值是5,6可能已经被人删掉了,我如何知道下次我添加数据的时候就是7呢?
--------
只可以用触发器重置标识列的种子,这样效率低,建议取消标识列处理
create table table1(ID bigint identity(1,1),Num int)--标识列为Bigint为最大,定义类型 就OK了 identity(1,1)这是设置初始值和步长
--------
只可以用触发器重置标识列的种子,这样效率低,建议取消标识列处理
create table table1(ID bigint identity(1,1),Num int)--标识列为Bigint为最大,定义类型 就OK了 identity(1,1)这是设置初始值和步长
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接插入之前先定义死最大id值,之后插入的id和这个值做下比较就可以了。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
直接按照自增值的倒序查询就可以了
select * from table order by id desc limit 1
select * from table order by id desc limit 1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询