头歌创建触发器tri_RestrictXK,以保证每门课的选课人数不超过4人;(提示:可选用INSTEAD
时间: 2024-03-01 10:50:58 浏览: 156
好的,这里是创建触发器的 SQL 代码:
```sql
CREATE TRIGGER tri_RestrictXK
INSTEAD OF INSERT ON 选课表
FOR EACH ROW
AS
BEGIN
-- 判断选课人数是否超过4人
IF (SELECT COUNT(*) FROM 选课表 WHERE 课程编号 = NEW.课程编号) >= 4
BEGIN
RAISERROR ('该课程已选满!', 16, 1);
ROLLBACK TRANSACTION;
END
ELSE
BEGIN
-- 插入新的选课记录
INSERT INTO 选课表 VALUES (NEW.学号, NEW.课程编号);
END
END;
```
这个触发器会在每次向选课表中插入新记录时触发,判断该课程已选人数是否超过4人,如果超过则会抛出错误并回滚事务,否则会插入新的选课记录。注意,在这个触发器中,INSTEAD OF 触发器可以替代 INSERT 操作,所以并不需要在外部再次调用 INSERT 语句。
阅读全文