我试图在Sybase触发器中循环插入表。最终,我想将所有插入的记录信息记录到审计表中。
我尝试在Sybase触发器中使用临时表。但是,Sybase提出了一个错误说明,它不允许在触发器内部使用临时表。
我不确定我是否可以使用光标。但是,我相信游标会对性能产生过分影响。
有没有更好的方法来实现这一目标?
答案 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