我在网上搜索但我找不到答案
在oracle中,如果我们为trigere指定它的插入或更新,我们这样写:
创建或替换触发器TRG_LOGS
INSERT或更新或删除后 ON TABOE_LOGS
对于每一行
DECLARE
V_USERNAME VARCHAR2(100);
BEGIN
如果插入则 插入long_log(NAME)VALUE(:new.NAME)
ELSE如果更新那么 插入long_log(NAME)VALUE(:OLD.NAME)
END;
END;
在关键字“insert”附近的错误语法上抛出错误。
答案 0 :(得分:2)
对于Sybase,每个操作都是单独的触发器:
create trigger TRG_LOGS_INS on TABOE_LOGS
for INSERT
as
DECLARE @V_USERNAME varchar(100)
BEGIN
insert into long_log
select NAME from INSERTED
END
...
create trigger TRG_LOGS_UPD on TABOE_LOGS
for UPDATE
as
DECLARE @V_USERNAME varchar(100)
BEGIN
insert into long_log
select NAME from DELETED
END
不确定我的语法是否完全正确,但应该指向正确的方向。 INSERTED
表(类似于Oracles new
)将新记录存储在插入或更新操作上。 DELETED
表(类似于Oracles old
)将旧记录存储在更新或删除操作中。
更多信息和示例可在Sybase T-SQL Users Guide: Triggers
中找到