一、存储过程的优点
1.执行速度更快 – 在数据库中保存的存储过程语句都是编译过的
2.允许模块化程序设计 – 类似方法的复用
3.提高系统安全性 – 防止SQL注入
4.减少网络流通量 – 只要传输存储过程的名称
二、存储过程语法"[" 里面的内容表示可选项
create proc 存储过程名
@参数1 数据类型 [=默认值] [output],
@参数2 数据类型 [=默认值] [output],
...
as
SQL语句
例:无参数操作
create proc proc_stu //创建存储过程
as
select * from 学生信息
执行完后会创建一个proc_stu的存储过程
执行存储过程 exec proc_stu
例:使用默认值参数
create proc p_employee
@departmentid varchar(10),//不带默认值
@zhiwei varchar(20)=‘职员‘
As
SELECT A.员工姓名,A.性别,B.部门名称
FROM 员工信息 A,部门名称 B
WHERE A.所在部门编号=B.部门编号 AND B.部门编号[email protected] AND A.所任职位[email protected] //(要查看的职位)
执行 exec p_employee @departmentid=‘技术部‘,@zhiwei=‘经理‘
例:使用输出参数
create proc p_sorce
@name varchar(10),
@sorce int output //输出参数
As
SELECT B.姓名,avg[A.分数]
FROM 成绩信息 A,学生信息 B
WHERE A.学生编号=B.学号 AND B.姓名[email protected]
avg[]聚合函数;
执行存储过程
DECLARE @SORCE1 INT 声明一个对象;
exec p_sorce @name=‘张苗苗‘,@ sorce [email protected] OUTPUT //OUTPUT 指定输出参数
PRINT @SORCE1 //打印结果值
再例如:
create proc p_stu
@na varchar(10),
@sco int=10
as
select * from stu where [email protected] and [email protected]
go
exec p_stu @na=‘lilu‘,@sco=88