我在网上搜索了一下,但找不到答案
在oracle中,如果我们指定trigere插入或更新,我们会这样写:
创建或替换触发器TRG_LOGSINSERT或更新或删除后
关于TABOE_LOGS
对于每一行
声明
V_USERNAME VARCHAR2(100)
开始
如果插入,则
插入long_log(NAME)VALUE(:new.NAME)
ELSE如果正在更新,则
插入long_log(NAME)VALUE(:OLD.NAME)
结束
结束
正在引发关键字"insert"附近语法不正确的错误。
对于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
表(类似于Oracle的new
)存储插入或更新操作的新记录。DELETED
表(类似于Oracle的old
)存储更新或删除操作的旧记录。
有关更多信息和示例,请参阅Sybase T-SQL用户指南:触发器