一、存储过程的优点

  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.部门编号=@departmentid  AND A.所任职位=@zhiwei   //(要查看的职位)

执行 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.姓名=@name

avg[]聚合函数;

执行存储过程

DECLARE @SORCE1 INT 声明一个对象;

exec  p_sorce  @name='张苗苗',@ sorce  =@SOCRCE1 OUTPUT  //OUTPUT 指定输出参数

PRINT @SORCE1 //打印结果值

数据库存储过程  _数据库存储过程  _02

再例如:

create proc p_stu

@na varchar(10),

@sco int=10

as

select * from stu where stu.name=@na and  stu.score=@sco

go 

exec   p_stu  @na='lilu',@sco=88

数据库存储过程  _数据库存储过程  _03