
请高手帮我做几道sql题目,请教,谢谢 10
1、创建一个带有参数的存储过程Stu_Age,该存储过程根据传入的学生编号,在T_STUDENT中计算此学生的年龄,并根据程序的执行结果返回不同的值,程序执行成功,返回整...
1、创建一个带有参数的存储过程Stu_Age,该存储过程根据传入的学生编号,在T_STUDENT中计算此学生
的年龄,并根据程序的执行结果返回不同的值,程序执行成功,返回整数0,如果执行出错,则返回错误
号。(年龄=YEAR(GETDATE())-YEAR(BIRTHDAY) ),输入参数为B0010001,执行该函数,输出该学生的年
龄和返回存储过程是否成功。
2、创建一个AFTER触发器,在T_SCORE表上创建一个插入、更新类型的触发器TR_ScoreCheck,当在SCORE
字段中插入或修改考试分数后,触发该触发器,检查分数是否在0-100之间。
3、在T_STUDENT表上创建一个删除类型的触发器TR_Stu_Delete,当在T_STUDENT表中删除某一条记录后,
触发该触发器,在T_SCORE表中删除与此学号对应的记录。 展开
的年龄,并根据程序的执行结果返回不同的值,程序执行成功,返回整数0,如果执行出错,则返回错误
号。(年龄=YEAR(GETDATE())-YEAR(BIRTHDAY) ),输入参数为B0010001,执行该函数,输出该学生的年
龄和返回存储过程是否成功。
2、创建一个AFTER触发器,在T_SCORE表上创建一个插入、更新类型的触发器TR_ScoreCheck,当在SCORE
字段中插入或修改考试分数后,触发该触发器,检查分数是否在0-100之间。
3、在T_STUDENT表上创建一个删除类型的触发器TR_Stu_Delete,当在T_STUDENT表中删除某一条记录后,
触发该触发器,在T_SCORE表中删除与此学号对应的记录。 展开
1个回答
展开全部
1.第一道没看懂
2.create TR_ScoreCheck
on T_SCORE
alter update,insert
as
begin
declare @score as float
select @score=score from inserted
if @score<0 or @score>100
begin
raiserror('分数只能在0-100内',16,1)
rollback tran
end
end
3.
create TR_Stu_Delete
on T_STUDENT
alter delete
as
begin
delete t2 from deleted t1 inner join T_SCORE t2 on t1.Stdid=t2.Stdid
end
2.create TR_ScoreCheck
on T_SCORE
alter update,insert
as
begin
declare @score as float
select @score=score from inserted
if @score<0 or @score>100
begin
raiserror('分数只能在0-100内',16,1)
rollback tran
end
end
3.
create TR_Stu_Delete
on T_STUDENT
alter delete
as
begin
delete t2 from deleted t1 inner join T_SCORE t2 on t1.Stdid=t2.Stdid
end
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询