这是我的触发器
Create TRIGGER [dbo].[tri_before_update]
ON [dbo].[test]
instead of update
AS
BEGIN
SET NOCOUNT ON;
if update (test_a)
begin
*.. my update & insert query*
end
END
create TRIGGER [dbo].[tri_before_update_price]
ON [dbo].[co_ticket]
instead of update
AS
BEGIN
SET NOCOUNT ON;
if update (t_price)
begin
insert into old_price_log (t_id,insert_time,process_id,old_t_price)
select i.t_id,getdate(),2,t_price
from Inserted i,co_ticket t where i.t_id = t.t_id
update t set t_price = i.t_price
from co_ticket t, inserted i
where t.t_id = i.t_id
end
else
begin
-- if update other then (t_price) then the update comand not execute.
-- example when i update t_cancel_flag or t_quantity and etc. end
END
当我更新列“test_a”时,此触发器完美执行。但是,当我更新列“test_a”以外的其他内容时,它将不会被执行。我知道我可以输入“else”命令,但我有很多专栏。有时会更新另外两列,有时会更新三或四列。我不希望每次都更新所有列。是否有可能 ELSE “然后执行原始查询”?我尝试了很多不同的方法,但仍然无法工作。:( 请帮忙!