问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

存储过程和触发器的区别

发布网友 发布时间:2022-04-23 01:06

我来回答

6个回答

懂视网 时间:2022-05-01 15:40

存储过程
是 SQL 语句和可选控制流语句的预编译集合,以一个名称存储并作为一个单元处理。存储过程存储在数据库内,可由应用程序通过一个调用执行,而且允许用户声明变量、有条件执行以及其它强大的编程功能。
存储过程可包含程序流、逻辑以及对数据库的查询。它们可以接受参数、输出参数、返回单个或多个结果集以及返回值。 
可以出于任何使用 SQL 语句的目的来使用存储过程,它具有以下优点: 
可以在单个存储过程中执行一系列 SQL 语句。
可以从自己的存储过程内引用其它存储过程,这可以简化一系列复杂语句。
存储过程在创建时即在服务器上进行编译,所以执行起来比单个 SQL 语句快。

触发器
是一种特殊类型的存储过程,当使用下面的一种或多种数据修改操作在指定表中对数据进行修改时,触发器会生效:UPDATE、INSERT 或 DELETE。触发器可以查询其它表,而且可以包含复杂的 SQL 语句。它们主要用于强制复杂的业务规则或要求。例如,可以控制是否允许基于顾客的当前帐户状态插入定单。
触发器还有助于强制引用完整性,以便在添加、更新或删除表中的行时保留表之间已定义的关系。然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。如果使用数据库关系图,则可以在表之间创建关系以自动创建外键约束。有关详细信息,请参见表关系。

使用触发器的优点
触发器的优点如下: 
触发器是自动的:它们在对表的数据作了任何修改(比如手工输入或者应用程序采取的操作)之后立即被激活。
触发器可以通过数据库中的相关表进行层叠更改。例如,可以在 titles 表的 title_id 列上写入一个删除触发器,以使其它表中的各匹配行采取删除操作。该触发器用 title_id 列作为唯一键,在 titleauthor、sales 及 roysched 表中对各匹配行进行定位。
触发器可以强制限制,这些限制比用 CHECK 约束所定义的更复杂。与 CHECK 约束不同的是,触发器可以引用其它表中的列。例如,触发器可以回滚试图对价格低于 10 美元的书(存储在 titles 表中)应用折扣(存储在 discounts 表中)的更新。

数据库存储过程和触发器

标签:

热心网友 时间:2022-05-01 12:48

一、指代不同

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

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

二、特点不同

1、存储过程:存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行。

2、触发器:是与表事件相关的特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活执行。

三、作用不同

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

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


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

参考资料来源:百度百科-存储过程

热心网友 时间:2022-05-01 14:06

一、二者的概念不同

1、存储过程

存储过程(Stored Procere)是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,它存储在数据库中,一次编译后永久有效,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象。

2、触发器

触发器是一种特殊类型的存储过程,它不同于我们前面介绍过的存储过程。触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用。

二、二者的功能不同

1、存储过程的功能:

(1) 变量说明

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

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

2、触发器的功能:

(1) 强化约束(Enforce restriction)

(2) 跟踪变化Auditing changes

(3) 级联运行(Cascaded operation)

三、二者的种类不同

1、存储过程种类:

(1)本地存储过程

(2) 临时存储过程

(3) 系统存储过程

2、触发器种类:

(1)AFTER 触发器和INSTEAD OF 触发器。

该类型触发器要求只有执行某一操作(Insert Update Delete) 之后,触发器才被触发,且只能在表上定义。可以为针对表的同一操作定义多个触发器。

(2) INSTEAD OF触发器表示并不执行其所定义的操作(Insert、 Update、 Delete),而仅是执行触发器本身,但对同一操作只能定义一个INSTEAD OF 触发器。

热心网友 时间:2022-05-01 15:41

一、参考不同

1、存储过程:是大型的SQL语句集,用于在大型数据库系统中完成特定的功能。

2、初始化:SQLServer提供给程序员和数据分析人员以确保数据初始化的一种方法。

二、特点不同

1、存储过程:存储在数据库中,编译后永久有效,用户通过指定存储过程的名称并指定参数(如果存储过程具有参数)来执行。

2、insert:是与表事件相关的特殊存储过程,程序的执行不被程序调用,也不是由程序手动启动,而是由事件触发,以便在操作表时(插入,删除,更新))执行将被激活。

三、作用不同

1、存储过程:以两个遏制号(##)开头的官僚存储过程,该存储过程将成为存储在tempdb数据库中的临时存储过程,一旦创建了该临时存储过程,它将被连接到服务器稍后。任何用户都可以在没有特殊权限的情况下执行它。

2、设置为:可用于强制引用常量,在添加,更新或删除多个表中的行时终止,保留这些表之间定义的关系。但是,强制引用替换的最佳方法是在相关表中定义主键和外键约束。

参考资料来源:百度百科-存储过程

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

热心网友 时间:2022-05-01 17:32

触发器与存储过程可以说是非常相似,可以说是一种变种的存储过程,触发器和存储过程一样都是SQL语句集,通常通过创建触发器来强制实现不同表中的逻辑相关数据的引用完整性和一致性。由于用户不能绕过触发器,所以可以用它来强制实施复杂的业务规则,以确保数据的完整性。触发器不同于存储过程,触发器主要是通过事件执行触发而被执行的,而存储过程可以通过存储过程名称名字而直接调用。当对某一表进行诸如UPDATE、INSERT、DELETE这些操作时,SQLSERVER就会自动执行触发器所定义的SQL语句,从而确保对数据的处理必须符合这些SQL语句所定义的规则。

热心网友 时间:2022-05-01 19:40

首先介绍一下触发器:
触发器是一种特殊类型的存储过程,当使用下面的一种或多种数据修改操作在指定表中对数据进行修改时,触发器会生效:UPDATE、INSERT 或 DELETE。触发器可以查询其它表,而且可以包含复杂的 SQL 语句。它们主要用于强制复杂的业务规则或要求。例如,可以控制是否允许基于顾客的当前帐户状态插入定单。

触发器还有助于强制引用完整性,以便在添加、更新或删除表中的行时保留表之间已定义的关系。然而,强制引用完整性的最好方法是在相关表中定义主键和外键约束。如果使用数据库关系图,则可以在表之间创建关系以自动创建外键约束。有关详细信息,请参见表关系。

使用触发器的优点
触发器的优点如下:

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

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

触发器可以强制*,这些*比用 CHECK 约束所定义的更复杂。与 CHECK 约束不同的是,触发器可以引用其它表中的列。
再介绍存储过程:
存储过程(Stored Procere)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。总的来说,存储过程具有以下一些优点:

◆存储过程允许标准组件式编程

◆存储过程能够实现较快的执行速度

◆存储过程能够减少网络流量

◆存储过程可被作为一种安全机制来充分利用

使用 SQL Server 中的存储过程而不使用存储在客户计算机本地的 Transact-SQL 程序的优势有:

允许模块化程序设计。
只需创建过程一次并将其存储在数据库中,以后即可在程序中调用该过程任意次。存储过程可由在数据库编程方面有专长的人员创建,并可独立于程序源代码而单独修改。

允许更快执行。
如果某操作需要大量 Transact-SQL 代码或需重复执行,存储过程将比 Transact-SQL 批代码的执行要快。将在创建存储过程时对其进行分析和优化,并可在首次执行该过程后使用该过程的内存中版本。每次运行 Transact-SQL 语句时,都要从客户端重复发送,并且在 SQL Server 每次执行这些语句时,都要对其进行编译和优化。

减少网络流量。
一个需要数百行 Transact-SQL 代码的操作由一条执行过程代码的单独语句就可实现,而不需要在网络中发送数百行代码。

可作为安全机制使用。
即使对于没有直接执行存储过程中语句的权限的用户,也可授予他们执行该存储过程的权限
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
什么叫补按揭 后按揭贷款什么意思 买房者续按揭有什么危害 加按揭是什么意思 八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 助理会计师,初级会计师,初级会计职称的区别是什么?? 为什么说触发器属于一种特殊的存储过程 会计初级考试通过之后就是助理会计师吗! 助理会计师与初级会计职称是不是一样的? 助理会计师考试的话需要考哪几门? 取得了初级会计资格证书就是助理会计师了吗?会计职称初级证书 姓孔的四个字好听的名字 求女孩的名字,姓孔,好听,并且富有诗意 孔姓 有文化底蕴的男孩女孩名字各一个 助理会计师是初级吗 姓孔的女孩取什么名字好听? 孔姓又子辈取啥名字好听 姓孔的女孩起个什么样的名字? 孔姓,繁字辈起什么名字好? 求吉祥好听名字,女孩,姓孔,维字辈,出生于农历二零一三年十月初九十三点... 孔姓维字辈分猪年女宝求好听名字孔姓维字辈猪年出生女宝,求好听的名字 孔姓有什么好听的名字 帮忙给我孩子起名字 我姓孔 想起个好听的 名字 最好一个字, 比如孔利 孔姓祥字辈女孩起什么名字好听? 怎样养护盆栽郁金香? 3. 触发器是一类特殊的存储过程,它定义在特定的( )上。 A. 字段 B. 记录 C. 表 D. 数据库 数据库存储过程、函数、触发器的区别是什么? 什么是触发器? 触发器和存储过程有什么区别,描述触发器的使用范围? 什么是触发器,使用触发器的好处是什么 什么是触发器?起到什么作用? SQL中,触发器是什么? 谁能给我一张英雄联盟加载界面的图!急求啊!要高清的!!! 存储过程是事务吗,触发器是一种特殊的事务 求几张LOL新版本界面图片 英雄联盟高清图片大全2014 存储过程和触发器有什么区别 触发器和存储过程有什么区别,描述触发器的使用范围 英雄联盟用户界面百度图片 英雄联盟初始界面图片显示不完整,就连禁英雄的时候也会显示这样无图的图像,类似这样的? 存储过程和触发器到底是个什么玩意? 求美服lol登录界面高清图片,就是那个jinx的 存储过程,函数和触发器的区别? LOL登录界面背景怎么换? 何为存储过程,举例说明触发器的应用有哪些