数据库
首页 > 数据库> > SQLServer2012书学习十 十一 十二 存储过程、触发器、游标

SQLServer2012书学习十 十一 十二 存储过程、触发器、游标

作者:互联网

第十章  创建于管理存储过程

      目标  理解存储过程的作用和运行机制、在实际应用开发时根据需要创建、修改存储过程、根据实际需要在存储过程中定义并使用输入参数、输出参数

      1  存储过程概述

         在数据库应用系统开发过程中经常需要将需要多次调用的T-SQL语句编写的程序段,存储在服务器上,应用程序通过子程序调用方式执行该程序段,从而提高系统的运行效率和数据的完整性,这种方式酒窖存储过程

         存储过程是sql语句和流程控制语句的预编译集合,将T-SQL语句多个封装到一起作为一个单元处理,只需编译一次,以后可以多次执行。

        存储过程由参数,编程语句和返回值组成。通过输入参数向存储过程传递参数、通过输出参数向存储过程的调用者传递参数。存储过程只能有一个返回值,通常用于表示调用存储过程的结果是否成功  

        优点:

          提高系统运行速度  只在创建时编译,以后每次执行不必重新编译

          2  提高系统的开发速度  存储过程通过封装复杂的数据库操作以简化开发过程

          3  提高系统的可维护性  存储过程可以实现模块化的程序设计,提供统一的数据库访问接口,改进应用程序的可维护性。

          4  提高系统的安全性   用户不能直接操作存储过程中引用的对象、SQL Server可以设定用户对制定存储过程的执行权限来增强程序代码的安全性

          5  降低网络流量      存储过程直接存储在数据库中,通信过程中,不会产生大量的T-SQL代码流量

          但存储过程依赖数据库管理系统,不便移植

          CREATE PROCEURE

      2  存储过程分类

          系统存储过程    SQL Server本身具有的功能  主要用来获取信息,为系统管理员提供帮助,为用户查看数据库对象提供帮助  、

                    sp_rename更改当前数据库用户创建对象的名称  sp_helptext  可以显示规则、默认值或视图的文本信息

          用户自定义存储过程

                    用户为实现某一特定任务或需求创建的。##表示全局存储过程,#表示局部临时存储过程

          扩展存储过程

                    以前缀xp_为标识,提供了SQL Server到外部程序的接口,以便进行各种维护活动。 EXEC xp_logininfo 返回账户,账户类型,账户的特权级别,账户的映射登陆名,账户访问SQL Server的权限路径

                    EXEC xp_loginconfig,返回SQL Server在Windows上运行的登陆安全配置

第十一章  创建与管理触发器

          目标 理解触发器的概念及运行机制  根据实际需要创建修改和删除触发器  禁用和启用触发器  了解查看触发器的方法

          1  触发器概述

            数据库主要根据约束和触发器来强制业务规则和数据完整性。触发器是一个在修改指定数据表的数据时执行的存储过程,当向某一个数据表插入删除或修改记录时,SQL Server会自动执行触发器所定义的SQL语句,从而保证对数据的处理符合由这些语句定义的规则。触发器和引起触发器执行的SQL语句被当做一次事务处理,操作失败回滚。

            主要功能:

              1  强化约束  能实现比CHECK更为复杂的约束  强制执行数据库中相关表的引用完整性

              2  根据数据的变化  撤销和回滚违反了引用完整性的操作,防止非法修改数据

              3  级联运行  级联修改数据库中相关的表,自动触发其他与之相关的操作

              4  返回自定义的错误信息  触发器可以返回信息,而约束只能通过标准的系统错误显示错误信息

            注意

            1   开头使用CREATE TRIGGER并且只能应用于一个表中

             2  需要向应用程序返回结果,否则不应使用SELECT 变量  

            3  触发器只在当前数据库中创建但可以引用数据库的外部对象

            4  同一条CREATE TRIGGER语句中可以为(INSERT、DELETE、UPDATE)语句定义相同的触发器操作

            5  如果一个表的外键定义了级联,则不能定义INSEAD OF触发器

            6  执行修改语句的过程中,触发器的执行只是修改语句事务的一部分,如果触发器执行不成功,则整个修改事务会回滚

            7  约束可以实现预定的数据完整性时,优先使用约束‘    ’

            8  TRUNCATE TABLE语句不触发触发器

            9  触发器不允许使用  ALTER DATABASE  CREATE DATABASE和DROP  DATABASE 等T-SQL语句

        2  触发器分类

          数据操纵语言DML触发器

            使用触发器情况      1  通过相关表实现级联修改  2  防止恶意操作  3  评估数据修改前后的状态,根据差异采取措施

            INSERTED  DELETED  用来临时存储要增加和删除的数据,UPDATE时先删除放在deleted后增加放在inserted表中,方便触发器判断条件,实现业务

          数据定义语言DDL触发器  当发生数据定义语言时被激活调用、使用DDL可以防止对数据库架构进行的某些修改或记录数据库架构中的更改事件。

  

标签:语句,触发器,存储,数据库,游标,SQLServer2012,SQL,过程
来源: https://www.cnblogs.com/27floor/p/11260577.html