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

这可能事我们期末考试的题目,希望大侠们能用专业语言回答下,... 这可能事我们期末考试的题目,希望大侠们能用专业语言回答下, 展开
 我来答
帐号已注销
2020-12-12 · TA获得超过77万个赞
知道小有建树答主
回答量:4168
采纳率:93%
帮助的人:162万
展开全部

一、功能不同:

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触发器

牛明志qF
2011-11-14 · TA获得超过164个赞
知道答主
回答量:176
采纳率:0%
帮助的人:157万
展开全部
存储过程 通过存储过程名来调用

触发器 在满足某一条件后,自动调用
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
美乐居士
2018-06-30
知道答主
回答量:1
采纳率:0%
帮助的人:846
展开全部
楼主是软件工程专业的????哈哈哈哈哈啊哈
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
578912276
2011-11-14
知道答主
回答量:28
采纳率:0%
帮助的人:19.9万
展开全部
考。。。我也准备提问的,又被你抢先了一步。。。哈哈。。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
wjxyzys
推荐于2018-04-11 · TA获得超过294个赞
知道小有建树答主
回答量:332
采纳率:100%
帮助的人:225万
展开全部
触发器是一种比较高级的完整性约束条件,用来解决用户定义的完整性不能解决的问题,提高数据库的完整性;
存储过程是为了加快系统的执行效率和速度而创建的,建立存储过程后,客户机只需要用EXEC执行存储过程即可,不用执行冗长的数据库select代码;
触发器与存储过程主要的区别在于触发器的运行方式。存储过程必须由用户、应用程序或者触发器来显示地调用执行,而触发器是当特定事件(delete、insert、update)出现的时候自动地执行的,与连接到数据库中的用户或者应用程序无关。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 4条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式