2010-11-13 64 views

回答

7

存储过程都存储为precompilated代码(存储程序),并通过地方就是了火程序员调用。存储过程可以返回值。 About procedures and functions.

触发命名数据库对象自动发射时插入,删除,更新(或其他事件)发生,就不可能有明确的调用。触发器不能返回任何数据。 About triggers.

您可以使用触发器的代码程序。

+0

我相信我不能在刚刚运行INSERT的同一张表上运行触发器?我对吗 ?另外,我可以根据事件自动运行一个过程吗? – 2010-11-15 18:59:40

+0

你不能CALL触发器,它总是在触发器之前或之后自动执行,但你可以有许多触发器在同一个事件上执行(插入也是事件)。每个触发器都在系统事件或插入/更新/删除事件上运行(您需要为这种触发器定义表)。您不能制作自动运行的程序,但可以自动运行触发器并调用您的程序。 – ksogor 2010-11-16 07:07:22

+0

现在很多东西都被清除了,我已经仔细阅读了你的链接。但是,你在括号中的含义是什么意思 - “每个触发器都在系统事件或insert/update/delete事件上运行(你需要为这种触发器定义表)”。我是否需要定义触发器影响的单独表格? – 2010-11-17 02:24:44

1

触发器是一个类型的存储过程,但它运行基于关闭桌子上的一个事件而不是仅仅是一组指令被重复执行的。

触发器被定义为激活时的插入,删除,或UPDATE语句执行针对相关联的表。

存储过程是一组编译到一个执行计划Transact-SQL语句的。

+0

我相信我不能在刚刚运行INSERT的同一张表上运行触发器?我对吗 ?另外,我可以根据事件自动运行一个过程吗? – 2010-11-15 18:58:52