Sql server 2008 在执行存储过程时触发触发器
我正在使用SQLServer2008。我有一个存储过程,它(在某些条件下)在我的表中插入数据,每次打开窗口时,应用程序都会调用这个存储过程。SQL事件探查器如下所示Sql server 2008 在执行存储过程时触发触发器,sql-server-2008,stored-procedures,triggers,Sql Server 2008,Stored Procedures,Triggers,我正在使用SQLServer2008。我有一个存储过程,它(在某些条件下)在我的表中插入数据,每次打开窗口时,应用程序都会调用这个存储过程。SQL事件探查器如下所示 exec TEST.dbo.spInsertRecords @parameter 现在我想要的是在调用此存储过程执行时触发触发器。 可能吗?如果是,请分享语法示例。触发器是在表上设置的,如果您真的需要在调用过程时触发某些内容(我真的不明白为什么,因为您应该能够修改过程以执行您想要的任何行为),添加一些虚拟表(日志表?),在该表上创
exec TEST.dbo.spInsertRecords @parameter
现在我想要的是在调用此存储过程执行时触发触发器。
可能吗?如果是,请分享语法示例。触发器是在表上设置的,如果您真的需要在调用过程时触发某些内容(我真的不明白为什么,因为您应该能够修改过程以执行您想要的任何行为),添加一些虚拟表(日志表?),在该表上创建触发器(例如,在insert上),并“触发”过程中的触发器(插入一行) 如果期望触发器执行某些代码,例如将记录写入日志
执行$procedure\u name@parameters;
在“$procedure\U name'@parameters;”之后执行我的_触发器如果触发器的触发条件发生,触发器将触发-在触发器关联的表上插入
、更新或删除。您不能手动“触发”触发器。。。若您在该表上有一个INSERT
触发器,并且您的存储过程实际上插入了一行(或多行),那个么该触发器将触发。感谢marc_s,若存储过程将执行,但不在表中插入记录,该怎么办?我还可以选择传递到此存储过程的参数吗?INSERT
触发器仅在有INSERT
时触发。好的,让我再解释一下。我正在自定义Microsoft Dynamics GP窗口,此存储过程不是我的,但它是GP存储过程,它有时在表中插入数据,有时不插入。在GP中,我们没有源代码,所以我们通常使用触发器,数据库触发器和应用程序触发器。这个存储过程有一个参数,我想在这个存储过程调用时选择这个参数。所以我不能在存储过程上设置触发器?如果我使用insert触发器,记住insert并不总是发生,它会工作吗?你不能包装它吗?重命名它,并使用调用原始名称的相同名称(包装器)创建另一个,并在包装器中添加任何代码?:(遗憾的是,在这种情况下没有。