1. 存储过程和触发器有什么区别
触发器是特殊的存储过程,因为他们编译的原理一样!
一般的存储过程都手动调用,而触发器自己运行的,也就是说调用不了,他的触发是被(update,insert,delete)语句触发的!
具体靠自己去琢磨!
联机帮助是最好的学习教程!
建议:多去csdn看看!
2. 简单说说存储过程与触发器的概念与作用
存储过程就是一个sql的程序集 可以包含多个SQL语句 并可以附带各种逻辑判断及处理
触发器 就类似于程序里的事件触发
只是这里通常是某个字段的改变 某个表插入了数据 或者删除某些数据
以上这些处理引发的另外一些表数据的改变
3. 数据库存储过程、函数、触发器的区别是什么
三者差别:
1、存储过程实现的功能要复杂一点,而函数实现的功能针对性比较强。;
2、存储过程一般是作为一个独立的部分来执行,而函数可以作为查询语句的一个部分来调用;
3、触发器是特殊的存储过程,存储过程需要程序调用,而触发器会自动执行。
分别含义:
1、存储过程的特点
①存储过程只在创建时进行编译,以后执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程可提高数据库执行速度。
② 当对数据库进行复杂操作时(如对多个表进行Update、Insert、Query、Delete时),可将此复杂操作用存储过程封装起来。
③可以在过程中调用另一个存储过程。可以在存储过程中调用函数。这可以简化一系列复杂语句。
④ 安全性高,可设定只有某用户才具有对指定存储过程的使用权。
⑤参数有三种(IN、OUT、IN OUT),可返回多个参数值。
⑥在ORACLE中,若干个有联系的过程可以组合在一起构成程序包。
⑦存储过程是数据库中的一个重要对象,任何一个设计良好的数据库应用程序都应该用到存储过程。
2、函数的特点
①函数只有一种参数(IN),只有一条RETURN语句,只能返回单一的值。
②可在SQL语句(DML或SELECT)中调用函数。由于函数可以返回一个表对象,因此它可以在查询语句中位于FROM关键字的后面。
3、触发器的特点
触发器是特殊的存储过程,存储过程需要程序调用,而触发器会自动执行。
4. 存储过程与触发器的区别
触发器与存储过程非常相似,触发器也是SQL语句集,两者唯一的区别是触发器不能用EXECUTE语句调用,而是在用户执行Transact-SQL语句时自动触发(激活)执行。触发器是在一个修改了指定表中的数据时执行的存储过程。通常通过创建触发器来强制实现不同表中的逻辑相关数据的引用完整性和一致性。由于用户不能绕过触发器,所以可以用它来强制实施复杂的业务规则,以确保数据的完整性。触发器不同于存储过程,触发器主要是通过事件执行触发而被执行的,而存储过程可以通过存储过程名称名字而直接调用。当对某一表进行诸如UPDATE、INSERT、DELETE这些操作时,SQLSERVER就会自动执行触发器所定义的SQL语句,从而确保对数据的处理必须符合这些SQL语句所定义的规则。
5. 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 约束不同的是,触发器可以引用其它表中的列。
(5)简述存储过程和触发器各自的特点扩展阅读:
触发器可通过数据库中的相关表实现级联更改;通过级联引用完整性约束可以更有效地执行这些更改。触发器可以强制用比 CHECK 约束定义的约束更为复杂的约束。与CHECK约束不同,触发器可以引用其它表中的列。例如,触发器可以使用另一个表中的 SELECT 比较插入或更新的数据,以及执行其它操作,如修改数据或显示用户定义错误信息。
触发器也可以评估数据修改前后的表状态,并根据其差异采取对策。
6. 存储过程和触发器的区别
一、参考不同
1、存储过程:是大型的SQL语句集,用于在大型数据库系统中完成特定的功能。
2、初始化:SQLServer提供给程序员和数据分析人员以确保数据初始化的一种方法。
二、特点不同
1、存储过程:存储在数据库中,编译后永久有效,用户通过指定存储过程的名称并指定参数(如果存储过程具有参数)来执行。
2、insert:是与表事件相关的特殊存储过程,程序的执行不被程序调用,也不是猛辩由程序手动启动,而是由事件触发,以便在操作表时(插入,删除,更新))执行将被激活。
三、作用不同
1、存储过程:以两个遏制号(##)开头的官僚存储过程,该存储过程将成为存储在tempdb数据库中的临时存储过程,一旦创建了该临时存储过程,它将被连接到服务器稍后。任何用户都可以在没有特殊权限的情况下执行它。
2、设置为:可用于强制引用常量,在添加,更新或删除多个表中的行时终止,保留这些表之间定义的关系。但是,强轿大制闭知竖引用替换的最佳方法是在相关表中定义主键和外键约束。
7. 存储过程和触发器有什么不同
首先介绍一下触发器:
触发器是一种特殊类型的存储过程,当使用下面的一种或多种数据修改操作在指定表中对数据进行修改时,触发器会生效: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 代码的操作由一条执行过程代码的单独语句就可实现,而不需要在网络中发送数百行代码。
可作为安全机制使用。
即使对于没有直接执行存储过程中语句的权限的用户,也可授予他们执行该存储过程的权限
8. sql视图 存储过程 触发器各自的优点是什么
视图的优点:
提高数据安全性,可以不让用户看到表中的某个字段。比如password,你只给他们执行视图的权限,不给执行表的权限,他们就无法查看全部数据。
还有可以建立一个视图,内容包括两个表,更新的时候只需要指定ID,而不用管它来自哪个表,对应表中的数据就会自动更新。
存储过程的优点:
包括视图的所有优点,还可以让不懂数据库的人也能也用数据库,还有就是方便程序计设,比如我负责前台程序设计,你负责写存程,我不用管你是怎么写,最后只接调用,我们分工明确,我也不需要懂你所懂的,这为用不懂语言和不同专业的人在一起合作提供了良好的平台。提高开发效率。
触发器的优点:
保证数据的正确性和逻辑,比如订单表中新增一条数据,对应在库存表中会减少一个产品一样。
还有保证数据的安全性,比如当用户删除表A,我们可以判断他是否为Admin组的用户,如果不是,就会给出错误的提示,并将事务回滚。
我知道的就这么多了。。。嘿嘿。
9. 简述存储过程,触发器,函数的异同
触发器是特殊的存储过程,存储过程需要程序调用,而触发器会自动执行;你所说的函数是自定义函数吧,函数是根据输入产生输出,自定义只不过输入输出的关系 由用户来定义。在什么时候用触发器?要求系统根据某些操作自动完成相关任务,比如,根据买掉的产品的输入数量自动扣除该产品的库存量。什么时候用存储过 程?存储过程就是程序,它是经过语法检查和编译的SQL语句,所以运行特别快。