在sybase中写入单个触发器,用于插入,更新和删除所有操作

时间:2018-01-19 04:27:59

标签: triggers sybase

我有一个要求,当我在特定的表上发生任何动作插入,更新和删除时,我想在sybase中编写一个触发器。

语法我知道但我的问题是我想每次根据动作插入,更新和删除执行不同的操作。

如何将此条件置于触发器中?

喜欢

如果插入 - 执行插入特定操作

如果更新 - 执行更新特定操作

如果删除 - 执行删除特定操作

1 个答案:

答案 0 :(得分:0)

我假设这个问题与SAP / Sybase Adaptive Server Enterprise(ASE)有关。你没有明确说明。

您可以根据插入的已删除的表的计数来区分行为。

例如,你可以这样写:

create trigger titles_trg on titles for insert, update, delete as 

declare @inserted_cnt int, @deleted_cnt int 
select @inserted_cnt = count(*) from inserted
select @deleted_cnt = count(*) from deleted

--insert command
if @inserted_cnt > 0 and @deleted_cnt = 0 
begin
    ...
end
else

--delete command
if @inserted_cnt = 0 and @deleted_cnt > 0 
begin
    ...
end

--update command
else
begin
    ...
end

go