我有一个要求,当我在特定的表上发生任何动作插入,更新和删除时,我想在sybase中编写一个触发器。
语法我知道但我的问题是我想每次根据动作插入,更新和删除执行不同的操作。
如何将此条件置于触发器中?
喜欢
如果插入 - 执行插入特定操作
如果更新 - 执行更新特定操作
如果删除 - 执行删除特定操作
答案 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