创建存储过程

我们可以使用CREATE PROCEDURE来创建一个存储过程。下面就是一个非常简单的存储过程的一个例子:
CREATE PROCEDURE pro_book
AS
SELECT * FROM forum
当你创建存储过程时,你必须给它指定一个名称。在本例子中,存储过程的名称为pro_book。你可以给存储过程赋予任何你想要的名称,但最好你能够使该名称在一定程度上描述存储过程的功能。每一个存储过程都包括一个或多个SQL语句。为了指明是存储过程一部分的SQL语句,你只需简单地在关键词AS后面包含它们。在前面例子中的存储过程只包含一个SQL语句。当该存储过程执行时,它返回在forum表中所有的记录。
你可以使用EXECUTE语句来执行一个存储过程。比如,为了执行pro_book存储过程,你可以使用如下的语句:

EXECUTE pro_book

当你执行该存储过程时,所有包括在其中的SQL语句都会执行,在上面的例子中,会返回所有在forum表中的记录。
当在批处理中的第一个语句是调用存储过程时,你并不需要使用EXECUTE语句。你可以简单地提供存储过程的名称来执行存储过程。比如在ISQL/W中,可以象下面所示来执行存储过程:
pro_book
这起同样的作用。存储过程会被执行,并会返回结果。然而如果在该存储过程之前还有其他的任何语句,你就会收到错误信息(一般地,语法错误)。
当你创建和执行一个存储过程时,这仅仅是在某一个数据库的范围内完成。假设你在数据库NetBBS内创建了存储过程pro_book。如果没有指明过程调用,你就不能在另一个数据库比如NetBBS2中调用存储过程pro_book。假如你需要在NetBBS2中执行存储过程pro_book,你必须使用如下的语句(注意下面的两个点号):
EXECUTE NetBBS.. pro_book
一旦你已经创建了一个存储过程,你就能使用系统存储过程sp_helptext来观看在该存储过程的的SQL语句。比如,如果你输入命令sp_helptext  pro_book,就会显示下面的结果:
text
……………………………………………
CREATE PROCEDURE pro_book
AS
SELECT * FROM forum

注意:你可能感到奇怪的是,sp_helptext系统过程本身就是一种存储过程类型。它是一种系统的存储过程。(系统存储过程存储在Master数据库中,能够被所有的数据库访问。)为了满足你的好奇心,你可以使用命令sp_helptext sp_helptext来观看组成sp_helptext本身的SQL语句。你在创建完存储过程后,不能对其进行修改。假如你需要修改一个存储过程。你必须首先破坏它,然后重新构建之。为了破坏一个存储过程。你可以使用DROP PROCEDURE语句,例如下面的语句删除pro_book存储过程:
DROP PROCEDURE pro_book
 注意
你可以使用系统存储过程sp_help来观看在当前数据库中所有存储过程的列表。假如你不加任何修改地执行了sp_help。该过程会显示在当前数据库中所有的存储过程、触发器和表。假如在sp_help后面跟上指定的存储过程,sp_help会仅仅显示那个存储过程的信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值