declare @noid char(10)
declare cur_insert cursor for
select max(noid)+1
from table
open cur_insert
fetch cur_insert into @noid
while @@fetch_status = 0
begin
insert into table
values(@noid,.....................)
fetch cur_insert into @noid
end
close cur_insert
declare cur_insert cursor for
select max(noid)+1
from table
open cur_insert
fetch cur_insert into @noid
while @@fetch_status = 0
begin
insert into table
values(@noid,.....................)
fetch cur_insert into @noid
end
close cur_insert
id int identity(1,1),
col int,
cid as cast(right(cast(10000000000+id as char(11)),10) as char(10))
)insert t values (2)
insert t values (2)
insert t values (2)
insert t values (2)select * from tid col cid
----------- ----------- ----------
1 2 0000000001
2 2 0000000002
3 2 0000000003
4 2 0000000004(4 row(s) affected)
SQLSERVER 只支持数字类型的字段为自增字段;比如你把字段设置为BIGINT,自增,那么在插入的时候本来就是自己会增加的。
FOE EXAMPLE:
CREATE TABLE MYTABLE(MYFIELD1 BIGINT INDENTITY(1,1),MYFIELD2 CHAR(10))
INSERT INTO MYTABLE(‘HELLLO’)
如果你的确需要字段类型为VARCHAR(20)(假定字段名称为MYNUMBER),可以增加一个字段AUTOCODE (BIGINT,自增),写一个触发器,每次插入的时候,把AUTOCODE 的值赋给MYNUMBER就可以了(当然你可以把AUTOCODE 变为你需要的格式再赋给MYNUMBER)。