1. 建立一个存储过程B_pro,用于检索图书的名称、编号和出版社名称。并执行B_pro存储过程。
/判断存储过程B_pro是否存在,如果存在则删除/
if exists(select name
from sysobjects
where name=‘B_pro’ and type=‘p’)
drop proc B_pro
/创建存储过程B_pro/
create proc B_pro
as
select 图书名称,图书编号,出版社名称
from book,pulish
where book.出版社编号=publish.出版社编号
/执行存储过程B_pro/
execute B_pro
2.建立一个用于向reader表中插入记录的存储过程ADD_reader。
/打开工作数据库/
use bookmanager
go
/判断存储过程ADD_reader是否存在,如果存在则删除/
if exists(select name
from sysobjects
where name=‘ADD_reader’ and type=‘p’)
drop proc ADD_reader
/创建存储过程ADD_reader/
create proc ADD_reader
@借书证号 char(8),@姓名 char(8),@性别 char(2),@部门 char(16),@联系电话 varchar(23)
as
insert reader
values (@借书证号,@姓名,@性别,@部门,@联系电话)
3.分别使用顺序法和提示法调用ADD_reader存储过程。
/顺序法执行存储过程/
execute ADD_reader ‘R00007’,‘豪哥’,‘男’,‘计算机系’,‘15625095517’
/查看执行结果/
select * from reader
/提示法执行存储过程/
execute ADD_reader @性别=‘男’,@借书证号=‘R00008’,@姓名=‘浩浩’,@部门=‘计算机系’,@联系电话=‘15625095517’
/查看执行结果/
select * from reader
4.删除ADD¬_reader。
drop procedure ADD_reader
5.创建一个用于向publish表中插入记录的存储过程ADD_publish,如果联系电话没有,默认值为“无”。
/判断存储过程ADD_publish是否存在,如果存在则删除/
if exists (select name
from sysobjects
where name=‘ADD_publish’ and type=‘p’)
drop procedure ADD_publish
–建立存储过程ADD_publish
create procedure ADD_publish
@出版社编号 char(4),@出版社名称 varchar(30),@联系电话 varchar(23)=‘无’
as
insert publish
values(@出版社编号,@出版社名称,@联系电话)
6.执行ADD¬_publish存储过程。联系电话使用默认参数。
/执行ADD_publish存储过程/
execute ADD_publish ‘P008’,‘广州华南商贸出版社’,‘020-88995566’
/查看执行结果/
select * from publish
/执行ADD_publish存储过程/
execute ADD_publish ‘P009’,‘中国铁路出版社’
/查看执行结果/
select * from publish
总结:
使用T-SQL命令建立存储过程
语法形式如下:
CREATE PROC[EDURE] procedure_name
[{@parameter data_type}
[VARYING] [=default][OUTPUT] ] [,…n]
[WITH {RECOMPILE|ENCRYPTION|RECOMPILE,
ENCRYPTION}]
[FOR REPLICATION]
AS
sql_statement [ …n ]
存储过程的执行
语法形式如下:
[[EXEC[UTE]]
{
[@return_status =]
{procedure_name|@procedure_name_var}
[[@parameter=]{value|@variable[OUTPUT]|[DEFAULT]
}
[,…n]
[ WITH RECOMPILE ]
.修改存储过程
语法形式如下:
ALTER PROC[EDURE] procedure_name
[{@parameter data_type}
[VARYING] [=default][OUTPUT] ] [,…n]
[WITH {RECOMPILE|ENCRYPTION|RECOMPILE,ENCRYPTION}]
[FOR REPLICATION]
AS
sql_statement [ …n ]
使用T-SQL命令查看
1)查看存储过程的参数及其数据类型
格式:sp_help name
2)查看存储过程的源代码
格式:sp_helptext name
3)查看和存储过程相关的数据库对象
格式:sp_depends name
使用T-SQL语句删除存储过程
语法格式:
DROP PROC[EDURE] {procedure_name} [,…n]