sql 连续编号

来源:百度知道 编辑:UC知道 时间:2024/06/15 01:29:00
insert into 表 (bh,mc) values ('db','db')
怎么使bh 是连续生成的数字编号01,02,03,....
能详细点么
______________
我是要用语句插入连续的编号,不是要改变表结构

企业管理器中,数据类型为int
下面的"列"选项卡中"表识"选为"是",表识种子默认为1,也就是该自动增长列从1开始,表识递增量默认为1,也就是该列的增量为1,如1,2,3,4...如果为2,则增量为2,如1,3,5,7...

连续的编号就用循环做

declare @i int
set @i=0
while(@i<100)
begin
insert into 表 (bh,mc) values (@i,'db')
set @i=@i+1
end

因为你的字段全是数字,所以可以用max()函数来取最大值,然后转为int,加1,再转为char(6). 如果你觉得6位太长,可以把下面代码中的6改称你要的长度。

先创建一个自定义函数:
create function f_getMaxCode()
returns varchar(6)
as
begin
declare @maxid int
declare @maxcode varchar(6)
set @maxcode=''
select @maxid=Cast(isnull(max(bh字段名),0)+1 as int) from 表名
set @maxcode=cast(@maxid as varchar(6))
while len(@maxcode)<6
begin
set @maxcode='0' + @maxcode
end
return @maxcode
end

在insert的时候:
insert into 表名(bh字段名,....)
values(dbo.f_getMaxCode(),....)

先做个函数,返回bh的一个值,这个值要和上一个连续。
为表的bh字段设置默认值为上面