【简答题】 请为以下代码加上注释。 create trigger tr_delete on student for delete begin declare @bh char(5) select @bh=deleted.sno from deleted delete from studentcourse where sno=@bh end
时间: 2023-11-22 12:55:30 浏览: 40
```
-- 创建名为tr_delete的触发器,当对student表进行删除操作时触发
create trigger tr_delete
on student
for delete
begin
-- 声明一个变量@bh,类型为char(5)
declare @bh char(5)
-- 从被删除的记录中获取sno字段的值,并赋值给@bh变量
select @bh=deleted.sno from deleted
-- 在studentcourse表中删除sno等于@bh变量的记录
delete from studentcourse where sno=@bh
end
```
相关问题
【简答题】 INSERT触发器通常被用来更新时间标记字段,或者验证被触发器监控的字段中数据满足要求的标准,以确保数据的完整性。请为下面每行代码加上注释。 create trigger tr_insert on studentcourse for insert as begin declare @bh char(5) select @bh=inserted.sno from inserted if not exists(select sno from student s where s.sno=@bh) delete from studentcourse where sno=@bh end
```
-- 创建名为 tr_insert 的触发器,作用于 studentcourse 表的 insert 操作上
create trigger tr_insert on studentcourse
for insert
as
begin
-- 声明一个名为 @bh 的变量,类型为 char(5)
declare @bh char(5)
-- 从 inserted 表中获取新增记录的 sno 值,赋值给 @bh 变量
select @bh=inserted.sno from inserted
-- 如果 student 表中不存在与 @bh 变量匹配的 sno 值
if not exists(select sno from student s where s.sno=@bh)
-- 删除 studentcourse 表中 sno 值等于 @bh 变量的记录
delete from studentcourse where sno=@bh
end
```
简答题】 请为以下代码加上注释。 create trigger tr_inserted on studentcourse for insert, update as declare @cj int select @cj=inserted.score from inserted if (@cj<0 or @cj > 100) begin raiserror ('成绩的取值必须在0到100之间', 16, 1) rollback transaction end
```
-- 创建触发器 tr_inserted
create trigger tr_inserted
on studentcourse
for insert, update
as
-- 声明变量 @cj 用于存储插入或更新的成绩值
declare @cj int
-- 从插入或更新的记录中获取成绩值,并赋值给变量 @cj
select @cj=inserted.score from inserted
-- 如果成绩值小于0或大于100,则执行以下操作
if (@cj < 0 or @cj > 100)
begin
-- 抛出错误信息,提示成绩必须在0到100之间
raiserror ('成绩的取值必须在0到100之间', 16, 1)
-- 回滚事务,撤销对数据库的修改操作
rollback transaction
end
```