可以使用T⁃SQL语句中的EXECUTE命令执行存储过程。
EXECUTE语句的语法形式如下。
上述数据参数中:
●@return_status:是一个可选的整型变量,保存存储过程的返回状态。
●Procedure_name:要调用的存储过程名称。
●;Number:是可选的整数,用于将相同名称的过程进行组合,使得它们可以用DROP PROCEDURE语句同时删除。例如,创建一组存储过程Userproc;1、Userproc;2,DROP PROCEDURE Userproc语句将删除整个组。在对过程分组后,不能删除组中的单个过程,例如,DROP PROCEDURE Userproc;2是不允许。该参数不能用于扩展存储过程。
●@procedure_name_var:是局部定义变量名,代表存储过程名称。
●@parametrer:在CREATE PROCEDURE语句中定义的过程参数。参数名称前必须加上符号“@”。
●Value:过程中参数的值。如果未指定参数名称,参数值必须以CREATE PROCEDURE语句中定义的顺序给出。如果在CREATE POOCEDURE语句中定义了默认值,用户执行该过程时可以不必指定参数。
●@variable:是用来保存参数或者返回参数的变量。
●OUTPUT:指定存储过程必须返回一个参数。
●DEFAULT:根据过程的定义,提供参数的默认值。如果过程需要的参数值没有事先定义好,或缺少参数,或指定了DEFALUT关键字,就会出错。
●WITH RECOMPLE:表示本次执行之前要重编译。
【例7-6】 使用Transact⁃SQL语句执行存储过程up_AllKc。
代码如下。
执行结果如图7-11所示。
图7-11 存储过程执行结果
执行存储过程时需要指定要执行的存储过程的名称和参数,使用一个存储过程去执行一组T-SQL语句,可以在首次运行时即被编译,在编译过程中把T-SQL语句从字符形式转化成为可执行形式。
【例7-7】 使用T-SQL语句执行存储过程up_getScore来查找学号为“09101001”的学生的各科成绩。
代码如下。
(www.xing528.com)
执行结果如图7-12所示。
图7-12 存储过程执行结果
如果存储过程中有OUTPUT参数,则该存储过程可以传出一个返回值。
【例7-8】 使用T-SQL语句执行存储过程up_getOneScore,来查找学号为“09101001”学生的课程编号为“3”的学科成绩。
编写Transact-SQL语句如下。
执行结果如图7-13所示。
图7-13 存储过程执行结果
注意:
如果在一个批处理中只有一个存储过程要执行,可以直接引用存储过程名而不必使用EXECUTE关键字。此外,如果省略EXECUTE关键字,则存储过程必须是批处理中的第一条语句,否则会出错。
在创建存储过程时,参数的默认值中可以使用通配符。
【例7-9】 使用T⁃SQL语句创建存储过程up_FindName,来查找所有姓“李”的学生信息。
创建完后,可以调用此存储过程。
执行结果显示Xs表中姓名以“李”开头的纪录。
执行如下语句。
执行结果为显示Xs表中姓名以“张”开头的纪录。
存储过程可以调用其他存储过程,此时就可能会产生嵌套。当调用的过程开始执行时,嵌套级会增加,当调用过程执行结束时,嵌套级则会减少。嵌套级最高为32级,如果超过32级,就会导致整个调用过程错误。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。