11 个解决方案
#1
--添加临时列
alter table 表 add id int identity
go
--更新
update 表
set 序号字段=right(convert(varchar,1000000+id),6)
--删除临时列
alter table 表 drop column id
alter table 表 add id int identity
go
--更新
update 表
set 序号字段=right(convert(varchar,1000000+id),6)
--删除临时列
alter table 表 drop column id
#2
vivianfdlpw() 说的也是个办法,但是和我想像的还是不一样,我要求的是第一位是0,不是其他数字,如果是其他数字就很好办了,就是要求第一位必须是000001,这个该怎么办呢?
#3
一楼不是把数值转成字符再右取六位嘛
就是0打头啊
就是0打头啊
#4
原始方法,游标循环,i=i+1,左边+00000,取right6位,cast to varchar,再update column
#5
declare @i int
select @i=0
update 表
set @i=@i+1,
字段=right('000000'+convert(varchar,@i),6)
select @i=0
update 表
set @i=@i+1,
字段=right('000000'+convert(varchar,@i),6)
#6
这个方法在这里使用的也不在少数了.
特殊的排名或者其他设置的时候都比较有用的.
特殊的排名或者其他设置的时候都比较有用的.
#7
set nocount on
declare @tb table(id int identity(1,1),name char(10),OrderSn char(10))
insert into @tb (name) values ('a')
insert into @tb (name) values ('b')
insert into @tb (name) values ('c')
insert into @tb (name) values ('d')
insert into @tb (name) values ('e')
insert into @tb (name) values ('f')
insert into @tb (name) values ('g')
insert into @tb (name) values ('h')
insert into @tb (name) values ('i')
insert into @tb (name) values ('j')
insert into @tb (name) values ('k')
insert into @tb (name) values ('l')
insert into @tb (name) values ('m')
update @tb set OrderSn=right(cast((1000000 + id) as varchar),6)
select * from @tb
/*
id name OrderSn
----------- ---------- ----------
1 a 000001
2 b 000002
3 c 000003
4 d 000004
5 e 000005
6 f 000006
7 g 000007
8 h 000008
9 i 000009
10 j 000010
11 k 000011
12 l 000012
13 m 000013
*/
declare @tb table(id int identity(1,1),name char(10),OrderSn char(10))
insert into @tb (name) values ('a')
insert into @tb (name) values ('b')
insert into @tb (name) values ('c')
insert into @tb (name) values ('d')
insert into @tb (name) values ('e')
insert into @tb (name) values ('f')
insert into @tb (name) values ('g')
insert into @tb (name) values ('h')
insert into @tb (name) values ('i')
insert into @tb (name) values ('j')
insert into @tb (name) values ('k')
insert into @tb (name) values ('l')
insert into @tb (name) values ('m')
update @tb set OrderSn=right(cast((1000000 + id) as varchar),6)
select * from @tb
/*
id name OrderSn
----------- ---------- ----------
1 a 000001
2 b 000002
3 c 000003
4 d 000004
5 e 000005
6 f 000006
7 g 000007
8 h 000008
9 i 000009
10 j 000010
11 k 000011
12 l 000012
13 m 000013
*/
#8
--同样采用添加临时列
alter table 表 add id int identity
go
--更新
update 表
set 序号字段=replicate('0',6-len(id))+cast(id as varchar(6))
--删除临时列
alter table 表 drop column id
alter table 表 add id int identity
go
--更新
update 表
set 序号字段=replicate('0',6-len(id))+cast(id as varchar(6))
--删除临时列
alter table 表 drop column id
#9
高见,高见!
#10
1。update 表
set 序号字段=replicate('0',6-len(id))+cast(id as varchar(6))
2。update 表
set 序号字段=right(convert(varchar,1000000+id),6)
set 序号字段=replicate('0',6-len(id))+cast(id as varchar(6))
2。update 表
set 序号字段=right(convert(varchar,1000000+id),6)
#11
都是高见恍然大悟,非常感谢大家,已经搞定了,不过就我个人意见rivery(river)的方法比较简单易懂,我就采纳这个方法了,谢谢!!!
#1
--添加临时列
alter table 表 add id int identity
go
--更新
update 表
set 序号字段=right(convert(varchar,1000000+id),6)
--删除临时列
alter table 表 drop column id
alter table 表 add id int identity
go
--更新
update 表
set 序号字段=right(convert(varchar,1000000+id),6)
--删除临时列
alter table 表 drop column id
#2
vivianfdlpw() 说的也是个办法,但是和我想像的还是不一样,我要求的是第一位是0,不是其他数字,如果是其他数字就很好办了,就是要求第一位必须是000001,这个该怎么办呢?
#3
一楼不是把数值转成字符再右取六位嘛
就是0打头啊
就是0打头啊
#4
原始方法,游标循环,i=i+1,左边+00000,取right6位,cast to varchar,再update column
#5
declare @i int
select @i=0
update 表
set @i=@i+1,
字段=right('000000'+convert(varchar,@i),6)
select @i=0
update 表
set @i=@i+1,
字段=right('000000'+convert(varchar,@i),6)
#6
这个方法在这里使用的也不在少数了.
特殊的排名或者其他设置的时候都比较有用的.
特殊的排名或者其他设置的时候都比较有用的.
#7
set nocount on
declare @tb table(id int identity(1,1),name char(10),OrderSn char(10))
insert into @tb (name) values ('a')
insert into @tb (name) values ('b')
insert into @tb (name) values ('c')
insert into @tb (name) values ('d')
insert into @tb (name) values ('e')
insert into @tb (name) values ('f')
insert into @tb (name) values ('g')
insert into @tb (name) values ('h')
insert into @tb (name) values ('i')
insert into @tb (name) values ('j')
insert into @tb (name) values ('k')
insert into @tb (name) values ('l')
insert into @tb (name) values ('m')
update @tb set OrderSn=right(cast((1000000 + id) as varchar),6)
select * from @tb
/*
id name OrderSn
----------- ---------- ----------
1 a 000001
2 b 000002
3 c 000003
4 d 000004
5 e 000005
6 f 000006
7 g 000007
8 h 000008
9 i 000009
10 j 000010
11 k 000011
12 l 000012
13 m 000013
*/
declare @tb table(id int identity(1,1),name char(10),OrderSn char(10))
insert into @tb (name) values ('a')
insert into @tb (name) values ('b')
insert into @tb (name) values ('c')
insert into @tb (name) values ('d')
insert into @tb (name) values ('e')
insert into @tb (name) values ('f')
insert into @tb (name) values ('g')
insert into @tb (name) values ('h')
insert into @tb (name) values ('i')
insert into @tb (name) values ('j')
insert into @tb (name) values ('k')
insert into @tb (name) values ('l')
insert into @tb (name) values ('m')
update @tb set OrderSn=right(cast((1000000 + id) as varchar),6)
select * from @tb
/*
id name OrderSn
----------- ---------- ----------
1 a 000001
2 b 000002
3 c 000003
4 d 000004
5 e 000005
6 f 000006
7 g 000007
8 h 000008
9 i 000009
10 j 000010
11 k 000011
12 l 000012
13 m 000013
*/
#8
--同样采用添加临时列
alter table 表 add id int identity
go
--更新
update 表
set 序号字段=replicate('0',6-len(id))+cast(id as varchar(6))
--删除临时列
alter table 表 drop column id
alter table 表 add id int identity
go
--更新
update 表
set 序号字段=replicate('0',6-len(id))+cast(id as varchar(6))
--删除临时列
alter table 表 drop column id
#9
高见,高见!
#10
1。update 表
set 序号字段=replicate('0',6-len(id))+cast(id as varchar(6))
2。update 表
set 序号字段=right(convert(varchar,1000000+id),6)
set 序号字段=replicate('0',6-len(id))+cast(id as varchar(6))
2。update 表
set 序号字段=right(convert(varchar,1000000+id),6)
#11
都是高见恍然大悟,非常感谢大家,已经搞定了,不过就我个人意见rivery(river)的方法比较简单易懂,我就采纳这个方法了,谢谢!!!