coolingpipe(冷箫轻笛) ( ) 信誉:100 Blog 2006-12-1 16:08:05 得分: 0
where leave >= @leave and len(leave) >= len(@leave) and id not in (select id from inserted)
and not exists (
select 1 from test tt
where leave like tt.leave+'%' --这句应该是无效的吧?笔误?是不是别名有问题?
and leave >= @leave and len(leave) < len(@leave)
)
update t
set leave = right('000' + cast(cast(left(leave,len(@leave)) as int)+1 as varchar),len(@leave))+stuff(leave,1,len(@leave),'')
from test t
where leave >= @leave and len(leave) >= len(@leave) and id not in (select id from inserted)
and not exists (
select 1 from test
where tt.leave like leave+'%'
and leave >= @leave and len(leave) < len(@leave)
)
create trigger t_upleave on test
for insert
as
declare @leave varchar(20)
select @leave = leave from inserted
if exists(select 1 from test where leave = @leave)
begin
update test
set leave = right('000' + cast(cast(left(leave,len(@leave)) as int)+1 as varchar),len(@leave))+stuff(leave,1,len(@leave),'')
where leave >= @leave and len(leave) >= len(@leave)
and id not in (select id from inserted)
and left(leave,len(@leave) - 3) = left(@leave,len(@leave) - 3)
end
go
where leave >= @leave and len(leave) >= len(@leave) and id not in (select id from inserted)
and not exists (
select 1 from test tt
where leave like tt.leave+'%' --这句应该是无效的吧?笔误?是不是别名有问题?
and leave >= @leave and len(leave) < len(@leave)
)
create trigger t_upleave on test
for insert
as
declare @leave varchar(20)
select @leave = leave from inserted
if exists(select 1 from test where leave = @leave)
begin
update test
set leave = right('000' + cast(cast(left(leave,len(@leave)) as int)+1 as varchar),len(@leave))+stuff(leave,1,len(@leave),'')
where leave >= @leave and len(leave) >= len(@leave)
and id not in (select id from inserted)
and left(leave,len(@leave) - 3) = left(@leave,len(@leave) - 3)
end
go
set @d= len(@c)-len(@e)
if(@d=0)
update PlanTask set ExpendNumber=@e+@f where (SubString(ExpendNumber,1,len(@c)) =@c) and (len(ExpendNumber)>len(@c))
else if(@d=1)
update PlanTask set ExpendNumber='0'+@e+@f where (SubString(ExpendNumber,1,len(@c)) =@c) and (len(ExpendNumber)>len(@c))
else
update PlanTask set ExpendNumber='00'+@e+@f where (SubString(ExpendNumber,1,len(@c)) =@c) and (len(ExpendNumber)>len(@c))
--修改下
create table test
(
id int,
leave varchar(20)
)
insert into test select 1, '001'
insert into test select 2, '001001'
insert into test select 3, '001002'
insert into test select 4, '002'
insert into test select 5, '002001'
insert into test select 6, '002001001'
insert into test select 7, '002001002'
where leave >= @leave and len(leave) >= len(@leave) and id not in (select id from inserted)
and not exists (
select 1 from test tt
where leave like tt.leave+'%'
and leave >= @leave and len(leave) < len(@leave)
)