根据第三题 ST 数据库,在Student表上创建一个触发器tri_insert。当插入记录时,如果插入记录的年龄在22-3年则可以插入。否则回滚操作,并提示“年龄不合规,拒绝插入”。
时间: 2024-09-10 12:22:24 浏览: 34
触发器练习答案(附有测试文档)
在SQL中,你可以使用CREATE TRIGGER语句来创建一个触发器。针对Student表,我们可以创建一个名为tri_insert的插入触发器,其基本语法如下:
```sql
CREATE TRIGGER tri_insert
ON Student
AFTER INSERT
AS
BEGIN
IF EXISTS (SELECT * FROM inserted WHERE Age NOT BETWEEN 22 AND 30)
BEGIN
ROLLBACK;
INSERTED.error_message = '年龄不合规,拒绝插入';
raiserror('年龄不合规,拒绝插入', 16, 1);
END
ELSE
BEGIN
COMMIT;
END
END;
```
这个触发器会在Student表的insert操作之后运行。它首先检查新插入的数据(通过`inserted`关键字获取),看是否有年龄不在22到30之间的记录。如果有,就使用ROLLBACK回滚事务并设置错误消息;如果没有,则提交事务。
注意:在实际应用中,`raiserror`函数通常用于SQL Server,其他数据库系统可能会有不同的异常处理机制。这里假设有一个`error_message`字段用于存储错误信息。
阅读全文