【发布时间】:2012-05-31 09:58:44
【问题描述】:
我正在尝试在 SQL Server 2008 中为 tblCustomer 表创建数据库触发器。每次在tblCustomer 表中插入、更新或删除时,我都需要它在tblChanges 表中添加一个新行。
具体来说,我需要它插入已更改的CustomerId (PK)、发生更改的dateTime,以及更改的类型(插入、更新、删除)。
到目前为止,我已经掌握了这些方面的一些内容,但无法弄清楚其余部分:
CREATE TRIGGER change_trigger
AFTER INSERT OR UPDATE OR DELETE
ON tblCustomer
DECLARE log_action varchar(30)
BEGIN
IF INSERTING THEN
log_action := 'I';
ELSEIF UPDATING THEN
log_action := 'U';
ELSEIF DELETEING THEN
log_action := 'D';
ELSE
DBMS_OUTPUT.PUT_LINE('undefined');
END IF;
INSERT INTO tblChanges(ChanedPK, ChangedTime, ChangedType)
VALUES ...
我不确定上述任何 SQL 是否正确,因为我还没有尝试运行它,而且我对 SQL 的了解有限。任何帮助完成代码和纠正错误将不胜感激。
【问题讨论】:
标签: sql sql-server-2008 triggers