数据库测验.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库测验

课堂测验 一、程序设计题 创建一个自定义函数Date_Now来显示当前日期和时间,可使用GETDATE() 和DATENAME()函数。例如当前时间是:2010-11-20 23:45:40,函数返回显示:“今天是2010年11月20日23时45分40秒星期六”。 create function Date_Now() returns table as return(SELECT 今天是+DATENAME(yy,getDate())+年 + DATENAME(mm,getDate())+月 + DATENAME(dd,getDate())+日 + DATENAME(hh,getDate())+时 + DATENAME(mi,getDate())+分 + DATENAME(ss,getDate())+秒 + DATENAME(dw,getDate()) as 返回 )select * from Date_Now() 下面是一段程序代码,请回答问题。 CREATE FUNCTION mydefine_fun (@var1 int,@var2 int,@var3 int) RETURNS int AS BEGIN DECLARE @result int SET @result=(@var1+@var2)*@var3 RETURN @result END 试分析程序的功能是什么?并解释参数和返回值的作用?调用程序代码如下 select dbo.mydefine_fun(1,2,3) ,返回显示结果为 9 。 二、触发器设计题 有一数据库,包含两张表:学生(学号,姓名,专业名称,性别,课程号,成绩) 课程(课程号,课程名称,课程类型,学分)表中数据如下: 学生表 学号 姓名 专业名称 性别 课程号 成绩 10201 王停 英语 女 1 75 10201 王停 英语 女 3 87 10203 李小宏 电子商务 男 2 81 10204 张忠 生物工程 男 2 70 课程表 课程号 课程名称 课程类型 学分 1 翻译与写作 必修 2 2 高等数学 必修 2 3 政治与形势 选修 1 为表创建触发器S_insert,当向表中插入数据时,要求学号必须以“”开头,且课程号必须在表中,否则取消插入操作。当向表中插入数据时:INSERT INTO 学生 VALUES(00702,秦永,机械工程,男,2,7) INSERT INTO 学生 VALUES(10702,秦永,机械工程,男,12,) 它们的运行结果分别是什么? CREATE TRIGGER S_insert ON 学生 FOR INSERT AS DECLARE @S_no VARCHAR(4), @S_cno INT SELECT @S_no= 学号, @S_cno=课程号 FROM INSERTED IF (LEFT(@S_no,2)!=10) BEGIN ROLLBACK TRANSACTION RAISERROR(输入的学号:%s不是级的学生,请确认后重新录入!,16,1, @S_no)END IF(@S_cno NOT IN (SELECT CNO FROM COURSE)) BEGIN ROLLBACK TRANSACTION RAISERROR(输入的课程号:%d在表中不存在,请确认后重新录入!,16,1, @S_cno)END INSERT INTO 学生 VALUES(00702,秦永,机械工程,男,2,7) 由于插入数据的学号为“02”,并不是以“”开头,所以执行S_insert触发器时,将执行“ROLLBACK TRANSACTION”语句,取消完成的工作,并执行RAISERROR语句给出错误信息。运行结果如下。输入的学号:02不是级的学生,请确认后重新录入!INSERT INTO 学生 VALUES(10702,秦永,机械工程,男,12,) 由于课程号12在表中不存在,所以执行S_insert触发器时,将执行“ROLLBACK TRANSACTION”语句,取消工作,并执行RAISERROR语句给出错误信息。运行结果: 输入的课程号:12在表中不存在,请确认后重新录入!为表创建DELETE触发器S_delete,当一次删除的记录大于一行或者删除记录的课程时,取消删除操作。代码:CREATE TRIGGER S_delete ON 学生 FOR DELETE AS DECLARE @rowcount int SELECT @rowcount=@@ROWCOUNT --@@ROWCOUNT返回受上一语句影响的行数 IF @rowcount1 BEGIN Rollback tr

文档评论(0)

f8r9t5c + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8000054077000003

1亿VIP精品文档

相关文档