/*针对项目表创建名为“p1_存储过程”的存储过程;执行“p1_存储过程”的存储过程进行数据浏览。*/
create procedure p1_存储过程
as
select* from project
go
exec p1_存储过程
-- 设计存储过程“p2_存储过程”,从员工表中计算某部门人员平均工资。
-- 要求输入参数为部门号,输出参数是该部门的平均工资。执行存储过程查看结果。
create procedure p2_存储过程
@pjun char(4),@pjavgsal float output
as
select @pjavgsal = avg(convert(float,salary))
from employee
where dpnu = @pjun
go
declare @pjnu char(4),@pjavgsal float
set @pjnu = '1004'
exec p2_存储过程 @pjnu ,@pjavgsal output
print '平均工资是:' + convert(varchar,@pjavgsal)
-- 设计存储过程“p3_存储过程”,完成对员工表的元组的插入工作。
-- 要求使用输入参数。插入操作成功返回状态值,失败返回状态值-1。
-- 执行存储过程,如果返回状态值为,输出“插入成功”,否则输出“插入失败”。
create procedure p3_存储过程
@emnu varchar(4),@emna varchar(10),@emge varchar(2),@embi date,
@donu varchar(4),@jszc varchar(30),@salary int ,@pri varchar(2) output
as
begin transaction
insert into employee values(@emnu,@emna,@emge,@embi,@donu,@jszc,@salary)
if @@error <> 0
begin
rollback transaction return -1
end
else
begin
commit transaction return 0
end
go
declare @pri int
exec @pri=p3_存储过程 '2111','王五','男','1999-9-9','1001','你好',1999,@pri output
if @pri = 0
print '插入成功'
else
print '插入失败'
-- ①修改"p1_存储过程"存储过程,要求指定项目编号作为输入参数,并增加WITH ENCRYPTION选项。
alter procedure p1_存储过程
@pjnu varchar(4)
with encryption
as begin
select * from project where pjnu = @pjnu end
go
exec p1_存储过程 J001
-- ②查看修改后的"p1_存储过程"存储过程文本。
sp_helptext 'p1_存储过程'
-- ③执行"p1_存储过程"存储过程。
exec p1_存储过程 j001
-- ④删除"p1_存储过程"存储过程。
drop procedure p1_存储过程
SQL Server存储过程实验
最新推荐文章于 2024-09-15 08:03:51 发布