我也是新手,谈谈我的理解:
SQL语句: 一句SQL语句就是一个命令,而一般来说一个命令只执行一件事
存储过程: 里面可以有多个SQL语句,用事物可以保证多句语句必宴尺须都执闷锋行成
功,这个存储过程才执行
触发器是在对表进行插入、更新或删除操作时自动执行的存储过程,触发器通常用于强制业务规则
触发器还是一个特殊的事务单元,当出现错误时,可以执行ROLLBACK TRANSACTION回滚撤销操作
触发器一般都需要使用临时表:deleted表和inserted表,它们存放了晌罩高被删除或插入的记录行副本
触发器类型:
INSERT触发器
UPDATE触发器
DELETE触发器
⑵ 请问SQL存储过程,视图,触发器,数据库表之间的关系是怎么样的有文章推荐么
数据库表是数据的载体,数据内容衡旅及数据关系的存储空间。
视图是利用数据库表生成的“伪表”,本身仅为一条查悔坦询数据库表的语句(物化视图除外)。
sql存储过程是处理、筛选数据的。作用是将数据库表中的数据读取出来,处理后将最终结果插入到某张表中,或者展现在页面上。
触发器是连带功能的开关,我们通过这个开关控制一些与正在处理的数据咐前凳或动作具有连带性质的数据库表内的数据。
触发器是开关,sql存储过程是处理数据的,也就是说可以通过触发器控制sql存储过程处理连带数据。
⑶ 存储过程和触发器有什么不同
首先介绍一下触发器:
触发器是一种特殊类型的存储过程,当使用下面的一种或多种数据修改操作在指定表中对数据进行修改时,触发器会生效: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 代码的操作由一条执行过程代码的单独语句就可实现,而不需要在网络中发送数百行代码。
可作为安全机制使用。
即使对于没有直接执行存储过程中语句的权限的用户,也可授予他们执行该存储过程的权限
⑷ 存储过程与触发器的区别
触发器与存储过程非常相似,触发器也是SQL语句集,两者唯一的区别是触发器不能用EXECUTE语句调用,而是在用户执行Transact-SQL语句时自动触发(激活)执行。触发器是在一个修改了指定表中的数据时执行的存储过程。通常通过创建触发器来强制实现不同表中的逻辑相关数据的引用完整性和一致性。由于用户不能绕过触发器,所以可以用它来强制实施复杂的业务规则,以确保数据的完整性。触发器不同于存储过程,触发器主要是通过事件执行触发而被执行的,而存储过程可以通过存储过程名称名字而直接调用。当对某一表进行诸如UPDATE、INSERT、DELETE这些操作时,SQLSERVER就会自动执行触发器所定义的SQL语句,从而确保对数据的处理必须符合这些SQL语句所定义的规则。
⑸ 简述存储过程,触发器,函数的异同
自定义只不过输入输出的关系
由用户来定义。在什么时候用触发器?要求系统根据某些操作自动完成相关任务,函数是根据输入产生输出触发器是特殊的存储过程,存储过程需要程序肢梁调用,比如,根据买掉的产品的输入数量自动历梁运扣除该产品的库存量。什么时候用存储过渣缺
程,而触发器会自动执行;你所说的函数是自定义函数吧
⑹ 简单说说存储过程与触发器的概念与作用
存储过程就是一个sql的程序集 可以包含多个SQL语句 并可以附带各种逻辑判断及处理
触发器 就类似于程序里的事件触发
只是这里通常是某个字段的改变 某个表插入了数据 或者删除某些数据
以上这些处理引发的另外一些表数据的改变
⑺ 存储过程和触发器到底是个什么玩意
存储过程相当于打包好的sql语法,可以包含复杂的sql操作,在程序调用时只要执行该存储过程,一句话就可以完成复杂的数据库操作.
触发器是也是打包好的sql语法,只不过执行它的条件是当被设定改触发器的表有变化的时候.比如我可以写一个触发器,设定它在插入一笔数据到这个表里的时候,去同步另一个表.那么在程序里我只要做到往数据库里插一笔数据,那么另一个表就可以同时被更新.
用存储过程和数据库的好处是,可以充分利用数据库资源,减少程序代码,程序员的工作将更简便,写出来的代码也更简洁明了.当然要真正明白程序在做什么,还是要到存储过程和触发器里面看明白.
呵呵,这些都是本人自身体会,你可以有选择的看看.
⑻ 存储过程和触发器的区别
一、参考不同
1、存储过程:是大型的SQL语句集,用于在大型数据库系统中完成特定的功能。
2、初始化:SQLServer提供给程序员和数据分析人员以确保数据初始化的一种方法。
二、特点不同
1、存储过程:存储在数据库中,编译后永久有效,用户通过指定存储过程的名称并指定参数(如果存储过程具有参数)来执行。
2、insert:是与表事件相关的特殊存储过程,程序的执行不被程序调用,也不是猛辩由程序手动启动,而是由事件触发,以便在操作表时(插入,删除,更新))执行将被激活。
三、作用不同
1、存储过程:以两个遏制号(##)开头的官僚存储过程,该存储过程将成为存储在tempdb数据库中的临时存储过程,一旦创建了该临时存储过程,它将被连接到服务器稍后。任何用户都可以在没有特殊权限的情况下执行它。
2、设置为:可用于强制引用常量,在添加,更新或删除多个表中的行时终止,保留这些表之间定义的关系。但是,强轿大制闭知竖引用替换的最佳方法是在相关表中定义主键和外键约束。
⑼ 请问存储过程与触发器关系
存储过程需要调用才执行里面的sql语句。触发器是设置好触发条件,条件达到时自动运行里面的sql语句,比如对a表进行更新(update)操作时,相应的触发器就会运行。
⑽ 存储过程和触发器到底是个什么玩意
电脑上的主板上的触发器不是存储元件,确实姿春码是晶体管元件,比如说早期主板上常见的迹哪门电路,不森袜过现在都集成到南桥里了