这样:
CREATE PROCEDURE sp_add(a int, b int,out c int)
begin
set c=a+ b
end
调用过程:
call sp_add (1,2,@a)
select @a
扩展资料:注意事项
存储过程(stored procedure)是一组为了完成特定功能的SQL语句集合,经编译后存储在服务器端的数据库中,利用存储过程可以加速SQL语句的执行。
存储过程分为系统存储过程和自定义存储过程。
系统存储过程在master数据库中,但是在其他的数据库中可以直接调用,并且在调用时不必在存储过程前加上数据库名,因为在创建一个新数据库时,系统存储过程在新的数据库中会自动创建。
自定义存储过程,由用户创建并能完成某一特定功能的存储过程,存储过程既可以有参数又有返回值,但是它与函数不同,存储过程的返回值只是指明执行是否成功,并不能像函数那样被直接调用,只能利用execute来执行存储过程。
创建存储过程
SQL Server创建存储过程:
create procedure 过程名
@parameter 参数类型
@parameter 参数类型
。。。
as
begin
end
执行存储过程:execute 过程名
上一节存储过程封装的都是简单的select语句,直接使用被封装的语句就能完成。所以存储过程往往应用于更复杂的业务规则处理时更有效
看一个例子
这个例子使用元素比较多,解释一下:
COMMENT为表添加了一句注释;
-- 单行注释,注释跟在后面的内容,需要注意-- 后需要加一个空格才能生效;
(#注释内容 /*注释内容*/ 这两种方法也能进行注释)
Declare用来声明变量,一句declare只能声明一个变量,变量必须先声明后使用
If...Then是进行条件判断的,基本语句如下:
If ... Then ... Else ... End If
这个存储过程完成了订单合计,并判断该订单是否需要增加营业税。taxable是一个布尔值(如果要增税为真,否则为假)。在存储体中定义了两个局部变量。并将结果存储到局部变量total中。if语句检查taxable是否为真,如果为真,则用另一条select语句增加营业税。最后将total结果保存到ototal中。
调用结果如下:
检查存储过程
SHOW CREATE PROCEDURE 过程名
为了获得包括何时、由谁创建等详细信息的存储过程列表,使用
Show procedure status -- 会列出所有存储过程
可以添加过滤,比如
存储过程循环语句
1. while
WHILE (表达式) DO
...
END WHILE
看一个例子
创建了一个循环存储过程,重复向human插入5条记录。下面调用看一下结果
2.repeat
基本语句:
Repeat ...until 条件...END Repeat;
同样 *** 作,使用repeat执行如下
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)