定义一个AFTER触发器,当sc表的成绩发生变动时,就自动在成绩变化表sc_log中增加一条新的记录,该新纪录包括:操作者名称、操作日期、操作类型,用T–SQL语句来实现
时间: 2024-12-12 20:26:49 浏览: 17
在SQL Server中,你可以创建一个AFTER触发器来满足这个需求。触发器会在指定的事件(如数据更改)发生后自动执行。这里是一个简单的例子,假设我们有一个名为`sc`的表用于存储学生成绩,以及一个`sc_log`表用来记录成绩的变化。以下是创建AFTER INSERT和UPDATE触发器的T-SQL语句:
```sql
CREATE TRIGGER trg_ScAfterUpdate
ON sc
AFTER INSERT, UPDATE
AS
BEGIN
DECLARE @OperatorName NVARCHAR(50) = '系统管理员'; -- 操作者名称(此处假设为固定值)
DECLARE @OperationDate DATETIME = GETDATE(); -- 操作日期
DECLARE @OperationType NVARCHAR(10) = CASE
WHEN INSERTED IS NOT NULL THEN '插入'
ELSE '更新'
END; -- 操作类型
-- 插入记录到sc_log
INSERT INTO sc_log (operator_name, operation_date, operation_type)
VALUES (@OperatorName, @OperationDate, @OperationType)
IF @@ROWCOUNT = 0
PRINT '触发器未成功执行。';
END;
GO
```
这个触发器会在`sc`表的插入和更新操作后,添加一条包含操作者名称、操作日期和操作类型的记录到`sc_log`表。
阅读全文