存储过程和触发器的区别和联系。
发布网友
发布时间:2022-05-01 19:09
我来回答
共3个回答
热心网友
时间:2022-04-10 01:30
我的理解:主要是使用场合不同,还有就是触发器中不能使用commit(这个应该是约定而不是规定)
存储过程相当于打包好的sql语法,可以包含复杂的sql操作,在程序调用时只要执行该存储过程,一句话就可以完成复杂的数据库操作.
触发器是也是打包好的sql语法,是一种特殊类型的存储过程,不由用户直接调用。创建触发器时会对其进行定义,以便在对特定表或列作特定类型的数据修改时执行
另外:触发器相对一般的存储过程也多了一些在代码编写方面的不同,比如说create
trigger
必须是批处理中的第一条语句,并且只能应用到一个表中等等.具体的可以看一下触发器的说明;http://ke.baidu.com/view/1189954.htm
热心网友
时间:2022-04-10 02:48
存储过程是要你去执行它
它才会执行,而触发器则是满足一定的触发条件就自动执行,这是最根本的区别,要根据业务逻辑灵活选择使用触发器还是存储过程
热心网友
时间:2022-04-10 04:22
一、指代不同
1、存储过程:是在大型数据库系统中,一组为了完成特定功能的SQL
语句集。
2、触发器:是SQL
server
提供给程序员和数据分析员来保证数据完整性的一种方法。
二、特点不同
1、存储过程:存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行。
2、触发器:是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作(
insert,delete,
update)时就会激活执行。
三、作用不同
1、存储过程:局时存储过程,以两个井字号(##)号开始,则该存储过程将成为一个存储在tempdb数据库中的全局临时存储过程,全局临时存储过程一旦创建,以后连接到服务器的任意用户都可以执行它,而且不需要特定的权限。
2、触发器:可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。
参考资料来源:百度百科-触发器
参考资料来源:百度百科-存储过程