数据库实验—实验3111.doc

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据库实验—实验3111

实验三 触发器与存储过程的建立与使用 实验名称:触发器与存储过程的建立与使用 一、实验目的 1、理解游标的概念、定义方法和使用方法。 2、理解触发器的概念、定义方法和触发条件。 3、理解存储过程的概念、建立和调用方法。 二、实验环境 使用SQL-Server2000数据库。 三、实验示例 利用游标选取业务部门的员工编号和姓名,并执行游标。 DECLARE cur_emp SCROLL cursor FOR SELECT emp_no,emp_name FROM employee WHERE dept=业务 ORDER BY emp_no 执行: OPEN cur_emp SELECT cursor打开状态=@@ERROR SELECT cursor内数据条数=@@CURSOR_ROWS FETCH NEXT FROM cur_emp SELECT cursor读取状态=CURSOR_STATUS(variable, @cur_emp) 2、写一个允许用户一次只删除一条记录的触发器。 create trigger tr_emp on employee for delete as declare @row_cnt int select @row_cnt=count(*) from deleted if @row_cnt1 begin print 此删除操作可能回删除多条人事表数据!!! rollback transaction end delete from employee where sex=F /*结果:所影响的行数为0*/ 3、模糊查询 create procedure sp_empname @E_name varchar(10) as select a.emp_name,a.dept,b.tot_amt from employee a inner join sales b on a.emp_no=b.sale_id where a.emp_name like @E_name go exec sp_empname 陈% 利用存储过程计算出’E0014’业务员的销售总金额。 create procedure sp_saletot @E_no char(5),@p_tot int output as select @p_tot=sum(tot_amt) from sales where sale_id=@E_no go declare @tot_amt int exec sp_saletot E0014, @tot_amt output select @tot_amt 四、实验内容与步骤 1、利用游标查找所有女业务员的基本情况。 2、创建一游标,逐行显示表customer.的记录,并且用WHILE结构来测试游标的函数@@FETCH_STATUS的返回值。 3、设置一个触发器,该触发器仅允许“dbo”用户可以删除employee表内数据的,否则出错。 4、设置一个针对employee表的触发器,当有人操作该表时,触发器自动将该操作者的名称和操作时间记录在一张表内,以便追踪。 5、级联更新:当更新employee表中emp_no列的值时,同时更新sales表中的sale_id列的值,并且一次只能更新一行。 6、对销货明细表sale_item表写一个UPDATE触发器,当修改某张订单中的明细时自动修改销售主表sales中的订单金额。 7、利用存储过程,给employee表添加一条业务部门员工的信息。 8、利用游标,编写存储过程,从employee、sales、customer表中按业务员姓名进行分组显示每个业务员所做的订单编号、客户姓名、销售金额和订单日期。 9、利用存储过程查找“刘刚”的员工编号、订单编号、销售金额。 10、利用存储过程查找姓“李”并且职称为“职员”的员工的员工编号、订单编号、销售金额。 五、实验报告 1、利用游标查找所有女业务员的基本情况: DECLARE cur_emp SCROLL cursor FOR SELECT * FROM employee WHERE dept=业务 and sex=f ORDER BY emp_no OPEN cur_emp SELECT cursor打开状态=@@ERROR SELECT cursor内数据条数=@@CURSOR_ROWS FETCH NEXT FROM cur_emp SELECT cursor读取状态=CURS

文档评论(0)

qwd513620855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档