SQL Server 2005 - 如何在预存程序中调用另外一个预存程序

要在一个预存程序中调用另外一个预存程序,可以使用下列两种方式之一进行调用: 

EXECUTE <欲执行之预存程序的名称> 

— 

EXEC <欲执行之预存程序的名称> 

若被调用的欲执行之预存程序的名称拥有传回,且需要接收该传回,则在执行该欲执行之预存程序的时候,必须使用 OUTPUT 关键词来让被调用的预存程序可以接收回传。只是必须先在被调用的预存程序中,利用  OUTPUT 关键词来加以建立并指定要回传的数之数据型别。如下所示即是一例: 

CREATE PROCEDURE #欢迎 @strInput NVARCHAR(50) OUTPUT
AS
  BEGIN
    SET @strInput = @strInput + '
欢迎来到:台北面摊章立民究室
';
  END;
GO

CREATE PROCEDURE #

AS
  BEGIN
    DECLARE @strHi NVARCHAR(50);
    SET @strHi = '
好!';
    EXECUTE #
欢迎
@strHi OUTPUT;
    PRINT @strHi;
  END
GO

--
现在要测试「#好」这个预存程序是不是可以正确被执行

--
我们使用三种方式进行测试
PRINT '
使用 EXECUTE 陈述式来测试';
EXECUTE #
;
PRINT '';
GO

PRINT '
使用 EXEC 陈述式来测试
';
EXEC #
;
PRINT '';
GO

PRINT '
直接使用 Stored Procedure 名称来测试看看
';
GO
#
;
GO


请注意:
这个范例所建立的预存程序是暂时性的,当您所使用的联机与 SQL Server 执行个体中断之后,这些预存程序就会自动被移除。

 

章立民研究室敬上

期待更多精彩,敬请关注:

http://www.china-pub.com/static/jsj_zlm_060824.html

 

posted on 2006-10-17 10:49 章立民研究室 阅读(2187) 评论(6) 编辑 收藏

评论

#1楼 2006-10-17 12:27 worren[未注册用户]

好文章啊,最近手头上的一些资料需要整理,想学习一下数据库,用数据把他们整合起来,前几天去第三极,虽然那里面的书都是打7折,不过翻来覆去都找不到一本满意的,随便拿了一本回来,有点失望,希望能够买到一本能够入门,又能稍微提高的书籍啊,章先生推荐一本好点的数据库方面的书籍吧,多谢了  回复 引用   

#2楼 2006-10-18 08:04 游民一族      

明明是存储过程,为什么起个名字叫“预存程序”?  回复 引用 查看   

#3楼 2006-10-18 08:34 里德王      

因为老章是台湾人  回复 引用 查看   

#4楼 2006-10-18 09:41 ★金★      

也就是在一个存储过程执行另外一个存储过程.
台湾的和我们有好多说法不一样,计算機方面还有很多.
比如:面向对象,你们知道叫什么吗?
 回复 引用 查看   

#5楼 2006-11-01 15:08 卢前程[未注册用户]

请问老师这样一个问题,有存储过程A和存储过程B,两个存储过程执行时都要传递参数,问题:
怎么样在存储过程B里面调用存储过程A执行后的结果集?就是在存储过程B里面再对存储过程A的结果集进行查询
谢谢了!
 回复 引用   

#6楼 2007-11-12 17:01 简单      

简单,insert into table1(...) exec procedure1  回复 引用 查看   

导航

公告


章立民
六度当选MVP
七十本著作酿成
十九载作者生涯
现在有了章立民研究室
依旧陶醉在写作的生活里。

昵称:章立民研究室
园龄:5年5个月
粉丝:31
关注:0

统计

搜索

 
 

常用链接

最新随笔

随笔分类(112)

随笔档案(112)

光盘勘误下载

积分与排名

最新评论

阅读排行榜

评论排行榜

推荐排行榜