写一个触发器,当A表插入数据时,B表新增插入时间,插入人员以及插入的数据,当A表删除数据时,C表添加与B表一样的内容
时间: 2024-04-14 17:26:02 浏览: 11
以下是一个示例的触发器,它可以实现当 A 表插入数据时,B 表会新增插入时间、插入人员以及插入的数据;当 A 表删除数据时,C 表会添加与 B 表一样的内容。
```sql
CREATE TRIGGER InsertIntoBAndC
ON A
AFTER INSERT, DELETE
AS
BEGIN
SET NOCOUNT ON;
IF EXISTS (SELECT * FROM inserted)
BEGIN
-- 当 A 表插入数据时
INSERT INTO B (InsertTime, InsertPersonnel, Data)
SELECT GETDATE(), CURRENT_USER, SomeColumn FROM inserted;
END
IF EXISTS (SELECT * FROM deleted)
BEGIN
-- 当 A 表删除数据时
INSERT INTO C (SomeColumn)
SELECT SomeColumn FROM deleted;
END
END;
```
以上触发器名称为 `InsertIntoBAndC`,它在表 A 上进行 INSERT 和 DELETE 操作后触发。当 A 表插入数据时,触发器会将插入时间(使用 `GETDATE()` 函数获取当前时间)、插入人员(使用 `CURRENT_USER` 函数获取当前用户)以及插入的数据(使用 `SomeColumn` 列)插入到 B 表中。当 A 表删除数据时,触发器会将被删除的数据的 `SomeColumn` 列插入到 C 表中。
请根据你的实际情况修改表名和列名,以确保触发器适用于你的数据库结构。