资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
主流数据库系统与应用(SQL)课程实验报告题目:创建触发器和存储过程姓名倪泽名日期2010-4-22实验环境:操作系统:windows XP ,SQL软件:Microsoft SQL Server实验目的:通过两个小实验,分别使用SQLServer2000企业管理器和Transact-SQL语句,按下列要求创建触发器和存储过程。认识到存储过程是SQL上一组先定义并编译好的TransactSQL语句,使用存储过程可以提高Transact_sql语句的运行性能,提高其运行效率。而触发器是一种很强的约束,可以在数据库中插入数据,修改数据和删除数据时进行检查,以保证数据完整性和一致性。本次试验重在学会创建存储过程和触发器,并合理的管理他们。实验内容与完成情况:1:创建触发器1、在数据库 Company_Data的表项目数据表和员工数据表中分别创建触发器。基于表员工数据表创建AFTER INSERT 触发器 Tigger_NewEmployeeSalary,将插入员工的工资额限制在 5000以内。create trigger Tigger_NewEmployeeSalary on Employee for insertasalter table Employee add constraint ck_Salary check(insered.工资5000)Go 2、书写CREATE TRIGGER语句,基于表员工数据表创建AFTER UPDATE触发器Trigger_SalaryChange,将员工工资变动额限制在2000以内。create trigger Trigger_SalaryChange on Employeefor updateasbegindeclare sal moneyselect sal=工资 from updatedif sal2000update Employee set 工资=2000End2:创建存储过程在数据库Company_Data中创建存储过程Procedure_SalaryByDept,要求返回某一特定部门所有员工的工资总和,其中特定部门的名称以存储过程的输入参数进行传递。在查询窗口书写 CREATE PROCEDURE Transact-SQL语句创建存储过程Procedure_SalaryByDept,并带有一个输入参数Department用于传递部门名称,一个输出参数TotalSalary用于传递输出结果。(3)选择所属部门为该参数传递的部门名称的所有记录,并对其工资字段求和。 (4)报告该部门的工资总额。create proc Procedure_SalaryByDeptDepartment char(50),TotalSalary money outputasif(Department in(select 所属部门 from Employee)beginselect TotalSalary=sum(工资) from Employee where 所属部门=Departmentselect 编号,姓名,性别,所属部门,工资,TotalSalary as 工资总和 from Employee where 所属部门=Departmentendelsebeginselect 不存在该部门endGO(5)执行这个创建存储过程的语句。Exec Procedure_SalaryByDept (6)执行系统存储过程sp_help查看该存储过程的一般信息。sp_help Procedure_SalaryByDept(1) 执行该存储过程,分别计算项目部、录入部、和检验部的工资总额。declare Department chardeclare TotalSalary moneyexec Procedure_SalaryByDept 项目部,TotalSalary outputdeclare Department chardeclare TotalSalary moneyexec Procedure_SalaryByDept 录入部,TotalSalary outputdeclare Department chardeclare TotalSalary moneyexec Procedure_SalaryByDept 检验部,TotalSalary output出现的问题:1:create trigger Trigger_SalaryChange on Employeefor updateasbegindeclare sal moneyselect sal=工资 from updatedif sal2000update Employee set 工资=2000End解决方案(列出遇到的问题和解决办法,列出没有解决的问题):1. from mployee错误
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号