存储过程 & 触发器

  触发器主要是通过事件进行触发而被执行的,而存储过程可以通过存储过程名字而被直接调用。当对某一表进行诸如UPDATE、 INSERT、 DELETE 这些操作时,
就会自动执行触发器所定义的SQL 语句,从而确保对数据的处理必须符合由这些SQL 语句所定义的规则。

触发器的主要作用就是其能够实现由主键和外键所不能保证的复杂的参照完整性和数据的一致性。除此之外,触发器还有其它许多不同的功能:

(1)强化约束(Enforce restriction)

触发器能够实现比CHECK 语句更为复杂的约束。

(2)跟踪变化(Auditing changes)

触发器可以侦测数据库内的操作,从而不允许数据库中未经许可的指定更新和变化。

(3)级联运行(Cascaded operation)。

存储过程

1. 存储过程只在创造时进行编译,以后每次执行存储过程都不需再重新编译,而一般SQL语句每执行一次就编译一次,所以使用存储过程

可提高数据库执行速度。

2. 当对数据库进行复杂操作时(如对多个表进行Update、Insert、Query、Delete时),可将此复杂操作用存储过程封装起来与数据库

提供的事务处理结合一起使用。

3. 存储过程可以重复使用,可减少数据库开发人员的工作量。

4. 安全性高,可设定只有某用户才具有对指定存储过程的使用权。

存储过程 & 触发器

时间: 2024-10-26 10:37:38

存储过程 & 触发器的相关文章

批量删除Sql Server对象(表,存储过程,触发器)

先在系统表中找到要处理的表名或者是存储过程的名字,在用游标对其进行处理 PS:SqlServer 2000使用的是系统表是sysobjects,类型字段是:xtype; SqlServer 2005以上版本的系统表是Sys.Objects,类型字段是Type 本文中以Sql2005为例,Sql2000版本请自行按照上述说明进行替换 注意  sys.objects 中type的值不同 删除命令是不同的 如删除存储过程用drop PROCEDURE PROCEDURENAME 删除表用 drop t

MySQL笔记---视图,存储过程, 触发器的使用入门

大二学数据库的时候,只是隐约听到老师提起过视图啊,存储过程啊,触发器啊什么的,但只是淡淡的记住了名字,后来自己做些小项目,小程序,也没有用上过,都只是简单的建表,关联表之类的,导致我对这些东西的理解只能停留在名称的阶段.最近看完了一本薄薄的小书叫<MySQL必知必会>,记了不少笔记,也自己上手实践了一番,总算是了解了些皮毛. 下面通过实例来具体了解这几个东西,首先我的样例表是这样的. 视图: 什么是视图? 视图是虚拟的表,本身并不包含数据,通过一个例子,来更好地理解视图: 假设上述表中,我需要

2017-3-16 Tsql基础编程 存储过程 触发器 级联删除

1.定义变量: declare @变量名 数据类型 变量赋值: set @变量名 = 值: select @变量名 = 值:(常用) 取值打印: select @变量名        print @变量名 要执行变量赋值取值的时候代码要一起执行,不能分句执行: declare @aa int ;select @aa = 11;select @aa; 打印结果: 2.分支语句: if @a>@b begin 语句 end else begin 语句 end declare @a int; decl

SQL2008--SQL语句-存储过程-触发器-事务处理-基本语法-函数

环境 SQL2008 1.存储过程建立 库-可编程性-存储过程-右击“存储过程”-点击“新建存储过程” SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOCREATE PROCEDURE [dbo].[zgccgc] //存储过程的名字 @zgID nvarchar(10),    //定义参数区@zgname nvarchar(10),@zgage  int,@zgaddress nvarchar(200) ASBEGIN    insert into

存储过程 触发器 约束

定义(定义时不能赋值):declare   @名   类型 赋值:set (或select) @名=’需要赋给@名的值’ 存储过程: 手动调用 弊端是不容易迁移数据(迁移时迁表,存储时重写) 格式: create  procedure  存储过程名(UP_表名_操作) 行参(传递的行参) As Begin 可定义变量(临时用的行参) 语句 End 使用: 存储过程名  行参 例题: ALTER PROCEDURE [dbo].[BuyFruit] @username varchar(20), @

关于oracle的函数,存储过程,触发器,序列,视图,左右连接一些的应用 带案例

CREATE TABLE STUDENT( --创建学生表  ID NUMBER(10) PRIMARY KEY,   --主键ID  NAME VARCHAR2(20),  CLASSNAME VARCHAR2(20) --班级ID);CREATE SYNONYM STU FOR STUDENT; --给学生表STUDENT创建别名(同义词)INSERT INTO STUDENT VALUES(1,'Tom',1);INSERT INTO STUDENT VALUES(2,'Jack',1);

第五章 存储过程&amp;触发器

1.前言 2.存储过程和触发器->存储过程 ·理解:是一组SQL命令集合,经过预编译存放在系统中:就像java程序里的方法,可以重复的被调用: 在日常的数据库操作中,会有大量的T-SQL批处理.游标,如果每次都要去重写或者打开脚本来执行会相当麻烦, 数据库可以将我们编写的T-SQL批处理保存在一个处理过程中. --创建 ·语法格式:create {proc | procedure} 存储名 [ @参数名 数据类型 [,···n] ] as [begin] sql语句[块] [end] ·例:无参

30.4. MySQL函数,存储过程,触发器,视图

函数 函数:系统函数和自定义函数系统函数:https://dev.mysql.com/doc/refman/8.0/en/func-op-summary-ref.html函数也可以进入数据库之后利用help命令来查看帮助,比如help max自定义函数 (user-defined function UDF) 注自定义函数定义之后保存在mysql.proc(mysql.func)表中 创建UDFCREATE [AGGREGATE] FUNCTION function_name(parameter_

事务视图存储过程触发器数据备份

目录 事务 事务的特性 原子性(Atomicity): 一致性(Consistency): 隔离性(Isolation): 持久性(Durability): 存储引擎 InnoDB :保时捷引擎 MyIsam:奔奔引擎 视图 使用 增加视图 删除视图 触发器 存储过程 创建 函数 数据库的备份 语法 示列 事务 通俗的说,事物指一组操作,要么都执行成功,要么都执行失败 使用事务: start transactino sql语句 commit/rowllback # 演示: mysql> sele