深圳职业技术学院软件工程系015,03软件.doc_第1页
深圳职业技术学院软件工程系015,03软件.doc_第2页
深圳职业技术学院软件工程系015,03软件.doc_第3页
深圳职业技术学院软件工程系015,03软件.doc_第4页
深圳职业技术学院软件工程系015,03软件.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

深圳职业技术学院软件工程系015、03软件 2004-2005学年度第一学期期末考试(必修)大型数据库(SQL SERVER)试卷 B【开卷】参考答案及评分标准 1创建一个名字为person的数据库,其数据文件分别为5MB和7MB;日志文件为4MB。数据文件和日志文件的最大尺寸为20MB,文件增长量为1MB。 【10分】create database personon primary(Name=person_data1, Filename=c:xkshijuanperson_data1.mdf, Size=5MB, MaxSize=20MB, Filegrowth=1), (Name=person_data2, Filename=c:xkshijuanperson_data2.mdf, Size=7MB, MaxSize=20MB, Filegrowth=1)log on (Name=person_log, Filename=c:xkshijuanperson_log.mdf, Size=4MB, MaxSize=20MB, Filegrowth=1)GO2按照附表给出表的定义,请在person数据库中创建奖励表。 【5分】use persongocreate table 奖励表(职工身份证号 char(15) not null,奖励时间 datetime not null,奖励原因 text null,奖励内容 text null,批准单位 char(3) null)go3在职工个人信息表和奖励表上创建约束。它使得在向奖励表中录入数据时,能保证所输入的职工身份证号在个人基本信息表中是存在的。 【10分】 use persongo-在职工个人信息表上创建主键约束alter table 职工个人信息表add constraint PK_perbasic Primary key (职工身份证号)go -在奖励表上创建外键约束alter table 奖励表add constraint FK_jiangcheng Foreign key (职工身份证号)references 职工个人信息表(职工身份证号)go4在奖励表上创建一个非聚集的非惟一索引。该索引基于职工身份证号和奖励时间列创建。 【5分】Create index IX_jiangchengon 奖励表(职工身份证号,奖励时间)go5创建一个视图myview。要求显示居住在郑州市的职工信息,显示内容包括有职工身份证号、职工姓名、性别、年龄、参加工作时间、工作单位。【5分】Create View myviewas select 职工身份证号,职工姓名,性别,年龄=datediff(yy,出生日期,getdate(),参加工作时间,工作单位 from 职工个人信息表 where 家庭住址 like %郑州市%goselect * from myview6统计显示居住在郑州市的职工总人数。 【5分】 select 居住在郑州市的职工人数=count(职工身份证号) from 职工个人信息表 where 家庭住址 like %郑州市% go 7对在1985年获得奖励的职工均增加500元工资。 【10分】update 职工个人信息表set 工资=工资+500from 职工个人信息表,奖励表where 职工个人信息表.职工身份证号=奖励表.职工身份证号 and year(奖励时间)=1985go8民族列只允许输入“汉族”、”回族”、“满族”、“苗族“、“壮族”5个值中的一个,不允许输入其它值。 【10分】create rule rule_nation as nation in (汉族,回族,满族,苗族,壮族)gosp_bindrule rule_nation,职工个人信息表.民族go9给职工个人信息表创建一个级联修改触发器,当修改职工个人信息表的职工身份证号时,级联修改职工家属表、奖励表、个人简历表中的与修改的职工身份证号相等的那些职工身份证号。 【10分】create trigger tri_update_zgon 职工个人信息表after updateas if update(职工身份证号) begin if (select count(*) from deleted)=0 /*或者from inserted表*/ begin rollback tran print 抱歉 ,职工个人信息表中不存在所要修改的职工身份证号. end else if (select count(*) from 职工个人信息表,inserted where 职工个人信息表.职工身份证号=inserted.职工身份证号)1 begin rollback tran print 职工个人信息表中不允许出现重复的职工身份证号! end else begin update 个人简历表 set 个人简历表.职工身份证号=inserted.职工身份证号 from 个人简历表,inserted,deleted where 个人简历表.职工身份证号=deleted.职工身份证号 update 奖励表 set 奖励表.职工身份证号=inserted.职工身份证号 from 奖励表,inserted,deleted where 奖励表.职工身份证号=deleted.职工身份证号 update 职工家属表 set 职工家属表.职工身份证号=inserted.职工身份证号 from 职工家属表,inserted,deleted where 职工家属表.职工身份证号=deleted.职工身份证号 print 级联修改成功 end endgo10创建一个存储过程myproc。它可以根据用户给出的职工姓名,显示该职工受奖励的情况和奖励次数。奖励情况包括:职工身份证号、职工姓名、奖励时间、奖励原因、奖励内容和批准单位。若要查询刘才职工的奖励次数,如何调用该存储过程。显示格式要求如下: 【10分】Create Procedure myproc name char(8)as select Z.职工身份证号,职工姓名,奖励时间,奖励原因,奖励内容,批准单位 from 职工个人信息表 Z,奖励表 J Where Z.职工身份证号=J.职工身份证号 and 职工姓名 like %+name+% compute count(z.职工身份证号)gomyproc 刘才 11授予名字为“丽丽”的登录帐户具有更新视图myview的权限、执行存储过程myproc的权限。(说明:“丽丽”不是SQL SERVER的合法帐户)。 【10分】sp_addlogin 丽丽,007,persongouse persongosp_adduser 丽丽gogrant update on myview to 丽丽gogrant exec on myproc to 丽丽12根据下面所给出的错误信息,请你写出可能出错的原因。 【10分】(1)连接的数据库不正确。首先输入并执行下面的语句: 【3分】 use persongo(2)职工身份证号在两个表中均有,应写明表前缀。 【3分】use persong

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论