sql中的触发器与存储过程有什么相同点和不同点?希望能专业点,谢谢

这可能事我们期末考试的题目,希望大侠们能用专业语言回答下,

一、功能不同:

1、存储过程的功能:

(1) 变量说明

(2) ANSI(美国国家标准化组织)兼容的SQL命令(如Select,Update….)

(3) 一般流程控制命令(if…else…、while….)

2、触发器的功能:

(1)强化约束(Enforce

restriction)

(2)跟踪变化Auditing

changes

(3)级联运行(Cascaded

operation)

二、指代不同

存储过程:在大型数据库系统中,一组为了完成特定功能的SQL语句集。

触发器:SQL server 提供给程序员和数据分析员来保证数据完整性的一种方法。

三、作用不同:

1、存储过程:局时存储过程,以两个井字号(##)号开始,则该存储过程将成为一个存储在tempdb数据库中的全局临时存储过程,全局临时存储过程一旦创建,以后连接到服务器的任意用户都可以执行它,而且不需要特定的权限。

2、触发器:可用于强制引用完整性,以便在多个表中添加、更新或删除行时,保留在这些表之间所定义的关系。然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。

四、相同点:

触发器是自动的:它们在对表的数据作了任何修改(比如手工输入或者应用程序采取的操作)之后立即被激活。

触发器可以通过数据库中的相关表进行层叠更改。例如,可以在 titles 表的 title_id 列上写入一个删除触发器,以使其它表中的各匹配行采取删除操作。该触发器用 title_id 列作为唯一键,在 titleauthor、sales 及 roysched 表中对各匹配行进行定位。

触发器可以强制限制,这些限制比用 CHECK 约束所定义的更复杂。与 CHECK 约束不同的是,触发器可以引用其它表中的列。

扩展资料:

触发器可通过数据库中的相关表实现级联更改;通过级联引用完整性约束可以更有效地执行这些更改。触发器可以强制用比 CHECK 约束定义的约束更为复杂的约束。与CHECK约束不同,触发器可以引用其它表中的列。例如,触发器可以使用另一个表中的 SELECT 比较插入或更新的数据,以及执行其它操作,如修改数据或显示用户定义错误信息。

触发器也可以评估数据修改前后的表状态,并根据其差异采取对策。

参考资料来源:百度百科-SQL触发器

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-11-14
存储过程 通过存储过程名来调用

触发器 在满足某一条件后,自动调用
第2个回答  2018-06-30
楼主是软件工程专业的????哈哈哈哈哈啊哈
第3个回答  2011-11-14
考。。。我也准备提问的,又被你抢先了一步。。。哈哈。。
第4个回答  推荐于2018-04-11
触发器是一种比较高级的完整性约束条件,用来解决用户定义的完整性不能解决的问题,提高数据库的完整性;
存储过程是为了加快系统的执行效率和速度而创建的,建立存储过程后,客户机只需要用EXEC执行存储过程即可,不用执行冗长的数据库select代码;
触发器与存储过程主要的区别在于触发器的运行方式。存储过程必须由用户、应用程序或者触发器来显示地调用执行,而触发器是当特定事件(delete、insert、update)出现的时候自动地执行的,与连接到数据库中的用户或者应用程序无关。本回答被提问者和网友采纳
相似回答