点击关注上方“SQL数据库开发”,
设为“置顶或星标”,第一时间送达干货
时不时有小伙伴私聊我这个存储过程怎么这么难啊? 说实话,我刚开始学SQL也觉得写存储过程可能是整个SQL开发中最难的了。因为存储过程简单起来可以只写一句SELECT就行,复杂起来写几天几夜也未必能写完(夸张了![034fa09f47a3c1d283b88cf326cb9032.png](https://i-blog.csdnimg.cn/blog_migrate/bd7df6e8432785642a204e43722ed879.png)
create proc | procedure procedure_name
[{@参数数据类型} [=默认值] [output],
{@参数数据类型} [=默认值] [output],
....
]
as
SQL_statements
go
示例
create proc sp_test
@param1 int,
@param2 varchar(16)
as
select * from test
where id=@param1
and t_no=@param2;
go
上面就是一个简单的示例。 存储过程在创建阶段可以带参数或不带参数,不带参数的一般是执行一些不需要传递参数的语句就可以完成的功能,带参数那就是需要传递参数的SQL语句,就像上面的示例,传递了两个参数给SQL语句。带参数的一定要定义参数类型,是字符型的还要定义长度,给参数加默认值是可选的。
存储过程的优点和缺点
优点:
1、提高性能 SQL语句在创建过程时进行分析和编译。存储过程是预编译的,在首次运行一个存储过程时,查询优化器对其进行分析、优化,并给出最终被存在系统表中的存储计划,这样,在执行过程时便可节省此开销。 2、降低网络开销存储过程调用时只需用提供存储过程名和必要的参数信息,从而可降低网络的流量。
3、便于进行代码移植数据库专业人员可以随时对存储过程进行修改,但对应用程序源代码却毫无影响,从而极大的提高了程序的可移植性。
4、更强的安全性1)系统管理员可以对执行的某一个