如何循环播放"插入" sybase触发器中的表

时间:2016-07-19 14:54:56

标签: sql triggers sybase-ase

我试图在Sybase触发器中循环插入表。最终,我想将所有插入的记录信息记录到审计表中。

我尝试在Sybase触发器中使用临时表。但是,Sybase提出了一个错误说明,它不允许在触发器内部使用临时表。

我不确定我是否可以使用光标。但是,我相信游标会对性能产生过分影响。

有没有更好的方法来实现这一目标?

1 个答案:

答案 0 :(得分:0)

您可以使用游标获取此信息...不要遍历整个表,而只是循环插入的内容。这是一个可以在触发器中使用的模板。确保使用表"插入" ..

CURSOR模板:

declare cursor_inserted cursor for
select
    column1,
    column2,
    column3
from inserted
where
    column1 = some_value

--These variables should be same datatype as columns in your table
declare @id             int                 --for column1
declare @date1          datetime            --for column2
declare @string1        varchar(512)        --for column3

open cursor_inserted
fetch cursor_inserted into @id, @date1, @string1
    while (@@sqlstatus <> 2)
        begin
            print 'Here is where you can log everything you have inserted. Code goes here'
            fetch cursor_inserted into @id, @date1, @string1
        end 
close cursor_inserted
deallocate cursor_inserted