在sybase中插入然后更新



我在网上搜索了一下,但找不到答案

在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用户指南:触发器

最新更新