实验9:存储过程、触发器试验(4学时)
实验目的
1、熟悉存储过程的创建和使用。
2、熟悉触发器的创建和使用。
实验内容
在SQL Server Management Studio中使用命令窗口输入SQL命令建立存储过程
和触发器。
使用SQL命令执行建立的存储过程。
使用SQL执行一定的语句触发触发器。
改变SQL Server的身份验证模式。
实验步骤
在SQL Server Management Studio 中,新建存储过程。
在查询窗口中设计3种:不使用参数的、使用参数的和使用通配符的存储过程。
问题:1、建立查找表borrower中所有用户名字。
2、 建立从branch表中返回指定branch_name的branch信息的存储过程。
3、建立带有通配符参数的存储过程。创建从customer表返回一些指定用户名的信息,该存储过程对传递的参数进行模式匹配,如果没有参数,则返回所有用户的信息。
调用存储过程测试是否能正常运行。
修改存储过程。
alter procedure usp_name as ………….;
问题:将参考中的usp_getcustomer修改成按指定的branch_name查找用户信息的存储过程。
删除存储过程。
drop procedure usp_name;
设计3种:由INSERT、UPDATE和DELETE操作触发的触发器。
执行INSERT、UPDATE和DELETE操作测试创建的3种触发器。
参考
存储过程:
用SQL命令窗口创建存储过程
打开SQL Server Management Studio,用鼠标单击“对象资源管理器“中”
banking“下的”存储过程“,在窗口的右侧显示当前数据库的所有存储过程,
单击鼠标右键,在弹出的快捷菜单上选择”新建存储过程“。
在新打开的SQL命令窗口中,给出了创建存储过程命令的模板,按照下
面的代码修改建立存储过程的命令模板后执行。
create procedure usp_getloan
as
select * from loan;
建立完成后,在对象资源管理器可查看此存储过程
执行存储过程:
Execute usp_getloan;
用SQL命令行创建存储过程。
单击“新建查询“按钮打开SQL命令窗口,输入以下代码后执行,立即
建立存储过程,该存储过程接受与传递的参数精确匹配的值,从customer表中查找指定姓名的用户信息。
create procedure usp_getcustomer
@name varchar(40)
as
select * from customer where customer_name=@name;
执行存储过程:execute usp_getcustomer ‘Adams’;
触发器:
语法格式:
create trigger trigger_name
on [table|view]
for|after|instead of
[insert][,][update][,][delete]
as {sql_stament [;][….n]|Extenal Name}
使用触发器防止数据库的任一表被修改或删除
create trigger safety
on database
for drop_table,alter_table
as print ‘你必须使safty触发器无效以执行对表的操作!’
rollback;
使用提醒消息的触发器。
create trigger reminder
on banking
after insert,update
as raiserror(‘你在插入或修改学生的数据’,16,10);
使用系统存储过程sp_helptext查看触发器正文。
sp_helptext ‘触发器名’
删除触发器
drop trigger ‘触发器名