alter proc a @a nvarchar(10) as exec b @agoalter proc b @a nvarchar(10) as exec c @agoalter proc c @a nvarchar(10) as exec d @agoalter proc d @a nvarchar(10) as if @a=1 begin exec a @a end else begin select @a endgoexec a 3
先Create a,b,c,d Create proc sp_a @a nvarchar(10) as select 1Create proc sp_b @a nvarchar(10) as select 1Create proc sp_c @a nvarchar(10) as select 1Create proc sp_d @a nvarchar(10) as select 1再Alter alter proc sp_a @a nvarchar(10) as exec b @aalter proc sp_b @a nvarchar(10) as exec c @aalter proc sp_c @a nvarchar(10) as exec d @aalter proc sp_d @a nvarchar(10) as select @a 然后执行SP_A exec sp_a @a
直接这样: Create proc sp_a @a nvarchar(10) as exec sp_b @agoCreate proc sp_b @a nvarchar(10) as exec sp_c @agoCreate proc sp_c @a nvarchar(10) as exec sp_d @agoCreate proc sp_d @a nvarchar(10) as select @agoexec a 3
create proc lin1 as begin select 1 exec lin2 end go create proc lin2 as begin select 2 exec lin3 end go create proc lin3 as begin select 3 exec lin4 end go create proc lin4 as begin select 4 end go exec lin1 go /* 1 2 3 4 */
alter proc a
@a nvarchar(10)
as
exec b @agoalter proc b
@a nvarchar(10)
as
exec c @agoalter proc c
@a nvarchar(10)
as
exec d @agoalter proc d
@a nvarchar(10)
as
if @a=1
begin
exec a @a
end
else
begin
select @a
endgoexec a 3
先Create a,b,c,d
Create proc sp_a
@a nvarchar(10)
as
select 1Create proc sp_b
@a nvarchar(10)
as
select 1Create proc sp_c
@a nvarchar(10)
as
select 1Create proc sp_d
@a nvarchar(10)
as
select 1再Alter
alter proc sp_a
@a nvarchar(10)
as
exec b @aalter proc sp_b
@a nvarchar(10)
as
exec c @aalter proc sp_c
@a nvarchar(10)
as
exec d @aalter proc sp_d
@a nvarchar(10)
as
select @a
然后执行SP_A
exec sp_a @a
直接这样:
Create proc sp_a
@a nvarchar(10)
as
exec sp_b @agoCreate proc sp_b
@a nvarchar(10)
as
exec sp_c @agoCreate proc sp_c
@a nvarchar(10)
as
exec sp_d @agoCreate proc sp_d
@a nvarchar(10)
as
select @agoexec a 3
as
begin
select 1
exec lin2
end
go
create proc lin2
as
begin
select 2
exec lin3
end
go
create proc lin3
as
begin
select 3
exec lin4
end
go
create proc lin4
as
begin
select 4
end
go
exec lin1
go
/*
1
2
3
4
*/