Dyn*_*ite 36 sql triggers stored-procedures
我无法理解sql中存储过程和触发器之间的区别.如果有人能够善意向我解释这将是伟大的.
提前致谢
Boh*_*ian 44
存储过程是用户定义的一段代码,用PL/SQL的本地版本编写,它可以返回一个值(使其成为一个函数),通过显式调用它来调用它.
触发器是在各种事件发生时自动运行的存储过程(例如,更新,插入,删除).
除非绝对需要,否则应避免使用恕我直言存储过程.
小智 33
可以将存储过程看作面向对象编程语言中的方法.你传递一些参数,它确实有效,它可以返回一些东西.
触发器更像是面向对象编程语言中的事件处理程序.在某种情况下,它可以(a)处理事件本身,或(b)进行一些处理并允许事件继续冒泡.
小智 7
关于SQL Server中的触发器:触发器是一段特殊的代码,在数据库服务器中发生事件时自动执行.
当用户尝试通过数据操纵语言(DML)事件修改数据时,DML触发器执行.DML事件是表或视图上的INSERT,UPDATE或DELETE语句.无论是否有任何表行受到影响,触发任何有效事件时都会触发这些触发器
我们可以像这样创建触发器:
CREATE TRIGGER TriggerName
ON [dbo].[TableName]
FOR DELETE, INSERT, UPDATE
AS
BEGIN
SET NOCOUNT ON
END
Run Code Online (Sandbox Code Playgroud)
一个存储过程无非是,你保存,所以你可以一遍又一遍地重复使用代码编写的SQL代码更.因此,如果您考虑一遍又一遍地编写的查询,而不是每次将其保存为存储过程时都必须编写该查询,然后只需调用存储过程来执行您保存为部分的SQL代码存储过程.
我们可以像这样创建一个存储过程:
CREATE PROCEDURE dbo.Sample_Procedure
@param1 int = 0,
@param2 int
AS
SELECT @param1,@param2
RETURN 0;
Run Code Online (Sandbox Code Playgroud)
两者的差异
无法手动调用触发器,可以手动调用存储过程.
事件发生时触发器自动执行,可用于报告和数据保护,不会删除或删除数据库中的表和数据.我们可以防止触发.另一方面,存储过程必须由某人调用.
可以从前端(客户端应用程序)调用存储过程,但不能从客户端应用程序调用触发器.
小智 6
触发器和程序之间的一些区别:
归档时间: |
|
查看次数: |
78258 次 |
最近记录: |