sql server语句定义触发器
时间: 2023-09-08 09:09:34 浏览: 141
在 SQL Server 中,可以使用以下语法定义触发器:
```sql
CREATE TRIGGER trigger_name
ON table_name
AFTER INSERT, UPDATE, DELETE -- 触发时机,可以根据实际情况选择
AS
BEGIN
-- 触发器代码
END
```
其中,`trigger_name` 是触发器的名称,`table_name` 是需要触发器的表名,`AFTER INSERT, UPDATE, DELETE` 是指在插入、更新、删除数据时触发触发器,可以根据实际情况选择需要的时机。
触发器代码需要放在 `BEGIN` 和 `END` 之间,可以根据需要写入对应的 SQL 语句,实现相应的业务逻辑。例如:
```sql
CREATE TRIGGER update_employee_salary
ON employees
AFTER UPDATE
AS
BEGIN
IF UPDATE(salary)
BEGIN
INSERT INTO salary_changes(employee_id, old_salary, new_salary, change_date)
SELECT i.employee_id, d.salary, i.salary, GETDATE()
FROM inserted i
INNER JOIN deleted d ON i.employee_id = d.employee_id
WHERE i.salary <> d.salary
END
END
```
以上示例定义了一个触发器,当 `employees` 表中的 `salary` 字段更新时,会将变更记录插入到 `salary_changes` 表中。`UPDATE(salary)` 用于判断 `salary` 字段是否被更新。`inserted` 表和 `deleted` 表用于获取更新前后的数据。
阅读全文