创建Insert触发器,当添加一个学生时,调整数据表N中相应的数据
时间: 2024-11-05 21:25:57 浏览: 3
创建一个Insert触发器,如示例所示,可以在`Students`表上运行,以确保只有18岁以上的学生被插入[^1]:
```sql
IF OBJECT_ID(N'TRIGGER_Students_Insert', N'tr') IS NOT NULL
DROP TRIGGER TRIGER_Students_Insert;
GO
CREATE TRIGGER TRIGER_Students_Insert
ON Students
FOR INSERT
AS
BEGIN
DECLARE @age INT;
SELECT @age = COUNT(*)
FROM Students
INNER JOIN inserted
ON Students.ID = inserted.ID;
PRINT '@age: ' + CAST(@age AS VARCHAR);
IF (@age < 18)
BEGIN
RAISERROR('学生年龄必须要大于18哦', 16, 8);
ROLLBACK TRANSACTION;
END
END;
```
在这个触发器中,每当有新学生(ID在`inserted`表中)插入`Students`表时,会计算这些学生的总数(假设年龄信息存储在`Students`表中)。如果年龄小于18,触发器会回滚事务并显示错误消息。
阅读全文