最近有不少小伙伴来私信存储过程到底是怎么一回事?之前有详细介绍过,不过时间比较久远,可能不好找。重新给需要的小伙伴介绍一下,语法比较固定,但是写法还是有点灵活,可以先模仿,写多了也就明白了。
存储过程其实就是已预编译为可执行过程的一个或多个SQL语句。 通过调用和传递参数即可完成该存储过程的功能。
前面有介绍过存储过程的一些语法,但是没有详细示例,今天我们来一起研究一下存储过程。
一、创建存储过程语法
create proc | procedure procedure_name [{@参数数据类型} [=默认值] [output], {@参数数据类型} [=默认值] [output], .... ]as SQL_statementsgo
示例
create proc sp_test@param1 int,@param2 varchar(16)asselect * from test where id=@param1 and t_no=@param2;go
上面就是一个简单的示例。
存储过程在创建阶段可以带参数或不带参数,不带参数的一般是执行一些不需要传递参数的语句就可以完成的功能,带参数那就是需要传递参数的SQL语句,就像上面的示例,传递了两个参数给SQL语句。带参数的一定要定义参数类型,是字符型的还要定义长度,给参数加默认值是可选的。
二、存储过程的优点和缺点
优点:
1提高性能
SQL语句在创建过程时进行分析和编译。 存储过程是预编译的,在首次运行一个存储过程时,查询优化器对其进行分析、优化,并给出最终被存在系统表中的存储计划,这样,在执行过程时便可节省此开销。
2降低网络开销
存储过程调用时只需用提供存储过程名和必要的参数信息,从而可降低网络的流量。