Sybase --Create Trigger为引用new作为new old as old子句提供语法错误

时间:2012-02-22 18:48:08

标签: sql tsql triggers sybase-ase

我正在使用Sybase ASE 15.0.3和DBArtisan 8.5.3。

我正在尝试创建一个触发器,在表更新时将数据放入审计表中。

我的代码就像

CREATE TRIGGER AUDIT_TRG ON TABLE A
FOR INSERT,UPDATE 
REFERENCING OLD AS OLD NEW AS NEW

我收到语法错误,指出引用附近的语法不正确。如果我只指定旧的或新的我得到一个不同的错误,因为OLD或NEW不是有效的标识符或类似的东西(我无法记住确切的错误)

我甚至尝试使用:old和:new但它们似乎没有用。

请让我知道如何访问正在更新的表的旧记录和新记录值。

1 个答案:

答案 0 :(得分:0)

要使用newold,您无需为new as newold as old创建参考。

例如,您必须这样做:

new.record_name
old.record_name

如果你想使用某个变量,你必须创建一个像这样的引用:

referencing OLD as some_variable

然后以下列方式使用此变量:

some_variable.record_name