declare @a int set @a=10000 --初始值为0001+前置的一位1-1update table1 set @a=@a+1,a=right(@a,4)
declare @a varchar(50) set @a='你好211' --初始值--更新处理 declare @i int,@head varchar(50),@j int select @i=patindex('%[0-9]%',reverse(@a))+1 ,@head=left(@a,@i) ,@j=len(@a)-@i ,@i=power(10,@j)+stuff(@a,1,@i,'')-1update table1 set @i=@i+1,a=@head+right(@i,@j)
--上面错了,改一下:declare @a varchar(50) set @a='你好211大草原123' --初始值--更新处理 declare @i int,@head varchar(50),@j int select @j=patindex('%[^0-9]%',reverse(@a))-1 ,@head=reverse(stuff(reverse(@a),1,@j,'')) ,@i=power(10,@j)+right(@a,@j)-1update table1 set @i=@i+1,a=@head+right(@i,@j)
--测试数据 declare @t table(a varchar(50)) insert @t select 1 union all select 3 union all select 3 union all select 4 union all select 5--替换处理 declare @a varchar(50) set @a='你好211大草原123' --初始值--更新处理 declare @i int,@head varchar(50),@j int select @j=patindex('%[^0-9]%',reverse(@a))-1 ,@head=reverse(stuff(reverse(@a),1,@j,'')) ,@i=power(10,@j)+right(@a,@j)-1update @t set @i=@i+1,a=@head+right(@i,@j)--显示处理结果 select * from @t/*--测试结果a -------------------- 你好211大草原123 你好211大草原124 你好211大草原125 你好211大草原126 你好211大草原127(所影响的行数为 5 行) --*/
set @a=10000 --初始值为0001+前置的一位1-1update table1 set @a=@a+1,a=right(@a,4)
set @a='你好211' --初始值--更新处理
declare @i int,@head varchar(50),@j int
select @i=patindex('%[0-9]%',reverse(@a))+1
,@head=left(@a,@i)
,@j=len(@a)-@i
,@i=power(10,@j)+stuff(@a,1,@i,'')-1update table1 set @i=@i+1,a=@head+right(@i,@j)
set @a='你好211大草原123' --初始值--更新处理
declare @i int,@head varchar(50),@j int
select @j=patindex('%[^0-9]%',reverse(@a))-1
,@head=reverse(stuff(reverse(@a),1,@j,''))
,@i=power(10,@j)+right(@a,@j)-1update table1 set @i=@i+1,a=@head+right(@i,@j)
declare @t table(a varchar(50))
insert @t select 1
union all select 3
union all select 3
union all select 4
union all select 5--替换处理
declare @a varchar(50)
set @a='你好211大草原123' --初始值--更新处理
declare @i int,@head varchar(50),@j int
select @j=patindex('%[^0-9]%',reverse(@a))-1
,@head=reverse(stuff(reverse(@a),1,@j,''))
,@i=power(10,@j)+right(@a,@j)-1update @t set @i=@i+1,a=@head+right(@i,@j)--显示处理结果
select * from @t/*--测试结果a
--------------------
你好211大草原123
你好211大草原124
你好211大草原125
你好211大草原126
你好211大草原127(所影响的行数为 5 行)
--*/