sybase触发条件exec存储过程

时间:2014-08-28 14:32:15

标签: sql sybase sybase-ase

我在表上有一个触发器,如果​​满足某个条件,则需要执行存储过程。有没有一种简单的方法可以不依赖于创建表来存储数据或使用游标?

作为一个例子,我有tableA:

tableA
col1  INT,
col2  INT

在更新时,如果col2已更新,则需要执行存储过程并将col1作为参数传递。

所以它会像

CASE WHEN i.col2 <> d.col2 THEN EXEC sp_MySproc i.col1
FROM inserted i
INNER JOIN deleted d
   on i.col1 = d.col1

数据库和所有触发器都是为一次更新一个记录/行而设计的,我正在尝试慢慢进行一些修改,以使其基于记录集而不是单行。

合并功能会对此有所帮助吗?

由于

1 个答案:

答案 0 :(得分:0)

如果使用Sybase ASE,可以尝试在触发器上使用构造:

if update (column_name) 

如果您可以重构SP - 您可以将数据卸载到临时表(或物理表)中,并从触发器执行过程,这将使用此数据。