在存储过程执行时触发触发器

时间:2013-09-17 08:18:17

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

我正在使用SQL Server 2008.我有存储过程,它(在某些情况下)在我的表中插入数据,每次打开窗口时都会从应用程序调用此存储过程。 SQL事件探查器显示如下

exec TEST.dbo.spInsertRecords @parameter

现在我想要的是在调用执行该存储过程时触发一个触发器。 可能吗?如果是,请分享语法示例。

2 个答案:

答案 0 :(得分:1)

触发器设置在表上,如果你真的需要在调用你的程序时触发的东西(老实说我不明白为什么你可以修改程序来做你想要的任何行为),添加一些虚拟表(a日志表?),在该表上创建触发器(例如插入),并“触发”过程内的触发器(插入一行)。

答案 1 :(得分:0)

如果希望触发器执行某些代码,例如将记录写入日志。

  1. 将代码直接写到过程中。

  2. 如果要在所有过程之前或之后执行通用代码,请在执行过程的地方编写代码。

例如在PHP中:

odbc_exec(“在“ $ procedure_name” @parameters之前执行my_trigger_; 执行$ procedure_name @parameters;
在'$ procedure_name'@parameters之后执行my_trigger _;“)