如果满足条件,则创建触发器以调用存储过程

时间:2015-03-24 23:48:21

标签: stored-procedures triggers sql-server-2008-r2

SQL Server 2008 R2

我有一个没有任何参数的存储过程,它只是根据静态条件更新表。

如果在我的dbo.item表上完成插入操作,我想调用此存储过程,但仅当插入dbo.item.item列的数据以'F - '开头

如果dbo.item.item上的插入不以'F-'开头,我不想调用存储过程。

先谢谢。

2 个答案:

答案 0 :(得分:0)

你能试试吗?

CREATE TRIGGER TriggerName FOR YOURTABLE
AFTER UPDATE
AS
BEGIN
--Here you need to get the columns list which are starts with F, from sys.columns and concate these then assign to variable. Next pass the variable 
--IF UPDATE (your Diclared variable name)
IF UPDATE (FColumnName,FColumnName1,FColumnName2,....)
BEGIN
EXEC Procedure 
END
END

答案 1 :(得分:0)

这是我使用的触发器。您是否看到其编写方式出现任何性能问题?

create trigger FixtureJob
on job
for insert
as
Begin
Declare @item varchar(30)
Select @item =(select LEFT(item,2) from inserted)
if @item = 'f-'
begin
execute ami_reports..FixtureJobDataUpdate
end 
end