第九章 存储过程
------1 存储过程简介
-----2 创建存储过程
--创建无参
--create procedure proc_1
create proc proc_1
as
select * from sumdaysales
--调用
exec proc_1
--带参数
create proc proc_2
@store varchar(10)
as
select * from sumdaysales where store=@store
exec proc_2 @store='SE47'
-----2 使用带默认值的参数
create proc proc_3
@store varchar(10)='SE47',
@NB int
AS
select * from sumdaysales where store=@store and NB<@NB
exec proc_3 @NB=14
exec proc_3 @store='SS4N',@NB=8
--exec proc_3 @store IN('SS4N','SE47'),@NB=8 Error
--------4 使用输出参数
create proc proc_4
@store varchar(10),
@NB int output
as
select * from sumdaysales where store=@store
declare @xxxx int ---声明输出参数
exec proc_4 @store='SE47' ,@NB=@xxxx output
print @xxxx
--------5 存储过程示例
--DROP proc proc_5
create proc proc_5
@store varchar(10),
@nb int
as
update sumdaysales set NB=@nb where store=@store and outdate='20141102'
exec proc_5 @nb=100000,@store='SE47'
select * from sumdaysales where store='SE47'
-------------- 6 修改存储过程
--选中存储过程右键--》修改
--------------- 7 删除存储过程
---右键-->删除
DROP proc proc_5
--------------- 8 设计存储过程的规则
--------------- 9 系统存储过程
exec sp_who
exec sp_helpdb Cognos --数据库信息
exec sp_helpdb
exec sp_monitor --系统使用情况
--------------- 10 临时/全局 存储过程 类似临时表
--临时
create procedure #proc_6
as
select * from sumdaysales where store='SE47'
ORDER by NB desc
exec #proc_6 --只能在本查询中用 新建查询就不行
--全局 对当前连接有效
create procedure ##proc_7
as
select * from sumdaysales where store='SE47'
ORDER by NB desc
exec ##proc_7
----------------11 嵌套存储过程
--proc_3 返回nb小于传入值的信息
--DROP PROC proc_7
create proc proc_7
as
select * from sumdaysales
exec proc_3 @NB=100
exec proc_7 --返回select * from sumdaysales 和proc_3的数据
-----------查看存储过程
exec sp_helptext proc_3
修改存储过程
保存储存过程