我正在使用 SQL Server 2008。我有存储过程,它(在某些情况下)在我的表中插入数据,每次打开窗口时都会从应用程序调用这个存储过程。SQL Profiler 显示如下
exec TEST.dbo.spInsertRecords @parameter
现在我想要的是每当调用这个存储过程来执行时触发一个触发器。可能吗?如果是,请分享语法示例。
我正在使用 SQL Server 2008。我有存储过程,它(在某些情况下)在我的表中插入数据,每次打开窗口时都会从应用程序调用这个存储过程。SQL Profiler 显示如下
exec TEST.dbo.spInsertRecords @parameter
现在我想要的是每当调用这个存储过程来执行时触发一个触发器。可能吗?如果是,请分享语法示例。
触发器是在表上设置的,如果你真的需要在调用你的过程时触发一些东西(我真的不明白为什么,因为你应该能够修改过程来做你想要的任何行为),添加一些虚拟表(一个日志表? ) ,在该表上创建触发器(例如在插入时),并在过程中“触发”触发器(插入一行)。
如果期望触发器执行某些代码,例如将记录写入日志。
将代码直接写入过程中。
如果要在所有过程之前或之后执行通用代码,请将代码写在执行过程的地方。
例如在 PHP 中:
odbc_exec("执行 my_trigger_before '$procedure_name' @parameters;
执行 $procedure_name @parameters;
执行 my_trigger_after '$procedure_name' @parameters;")