存储过程中怎样再调用存储过程?谢谢
存储过程中怎样再调用存储过程?谢谢 问题点数:20、回复次数:5Top
1 楼MorningTea(一勺抹茶)回复于 2005-10-14 18:37:58 得分 8
简单例子
create procedure sp_b
as
select * from 表1
go
create procedure sp_a
as
insert into 表2
exec sp_b --->调用一个sp返回一个数据集合,然后插入
go
Top
2 楼MorningTea(一勺抹茶)回复于 2005-10-14 18:38:52 得分 0
还有其他方式的调用,看你要返回数据集合还是返回一个output,后者是远程server上面的sp罗Top
3 楼iwl()回复于 2005-10-14 20:52:53 得分 2
create procedure spnamea
as
.......
go
create procedure spnameb
as
......
exec spnameA
go
Top
4 楼scmail81(琳·风の狼(修罗))回复于 2005-10-14 21:07:16 得分 8
把@test作为output参数或者存储过程返回值
CREATE PROCEDURE sp_test
(
@Y_A_A_Nums int=0 output,
@Test int output
)
AS
DECLARE @Sql nvarchar(1000
SET @Sql ='SELECT @Y_A_A_Nums=Y_A_A FROM Init_Week WHERE Member_Code=''QCRX1381'' AND StartDay=''2005-7-31'' AND EndDay=''2005-8-6'''
EXEC sp_executesql @Sql,N'@Y_A_A_Nums int out',@Y_A_A_Nums out
IF @Y_A_A_Nums IS NULL
SET @Y_A_A_Nums=0
SET @Test = 1
go
然后在另一个过程中:
create procedure p
as
declare @nums int,@test int
exec sp_test @nums out,@test out
select @nums,@test
Top
5 楼QQMagicer(在IT的路上越走越远)回复于 2005-10-14 22:03:34 得分 2
create procedure sp1
(
@a varchar(10),
@b varchar(10) output
)
AS
......
create procedure sp2
as
declare @c varchar(10),
@d varchar(10)
select @c ='aaa'
exec sp1 @c,@d output
.....Top




