SlideShare ist ein Scribd-Unternehmen logo
1 von 114
第 10 章  存储过程与触发器
本章内容 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
10.1  存储过程概述  ,[object Object]
[object Object],[object Object],[object Object],[object Object],[object Object],1.  存储过程的类型 10.1  存储过程概述
(1) 系统存储过程  ,[object Object],[object Object],10.1  存储过程概述
(2) 用户定义存储过程 ,[object Object],10.1  存储过程概述
(3) 临时存储过程 ,[object Object],[object Object],10.1  存储过程概述
(4) 扩展存储过程 ,[object Object],10.1  存储过程概述
2.  存储过程的功能特点 ,[object Object],[object Object],[object Object],[object Object],10.1  存储过程概述
存储过程的运行过程 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],10.1  存储过程概述
存储过程具有以下优点 ,[object Object],[object Object],[object Object],[object Object],[object Object],10.1  存储过程概述
[object Object],[object Object],[object Object],[object Object],[object Object],10.2  存储过程的创建与使用
10.2.1  创建存储过程 ,[object Object],[object Object],[object Object],10.2  存储过程的创建与使用
[object Object],10.2.1  创建存储过程
[object Object],[object Object],[object Object],[object Object],10.2.1  创建存储过程
2.  使用向导创建存储过程 ,[object Object],[object Object],10.2.1  创建存储过程
[object Object],10.2.1  创建存储过程
[object Object],10.2.1  创建存储过程
[object Object],10.2.1  创建存储过程
[object Object],10.2.1  创建存储过程
[object Object],[object Object],10.2.1  创建存储过程
3.  使用 CREATE PROCEDURE 语句创建存储过程 ,[object Object],[object Object],[object Object],[object Object],[object Object],10.2.1  创建存储过程
创建存储过程语句的语法格式如下: ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],10.2.1  创建存储过程
例 10-1  创建存储过程,从表 goods 和表 goods_classification 的联接中返回商品名、商品类别、单价。 ,[object Object],[object Object],[object Object],[object Object],[object Object],10.2.1  创建存储过程
例  在数据库 employees 中创建存储过程,用于返回项目标的不小于 50000 的项目情况,并按项目标的的降序进行排序。 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],10.2.1  创建存储过程
10.2.2  执行存储过程 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],10.2  存储过程的创建与使用
例如,执行例 10-1 的存储过程 goods_info ,[object Object],[object Object],[object Object],10.2.2  执行存储过程
10.2.3  修改存储过程 ,[object Object],[object Object],[object Object],[object Object],[object Object],10.2  存储过程的创建与使用
[object Object],10.2.3  修改存储过程
2.  使用 ALTER PROCEDURE 语句修改存储过程 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],10.2.3  修改存储过程
例 10-2  使用 ALTER PROCEDURE 语句更改存储过程。 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],10.2.3  修改存储过程
(2)  查看 employee_dep 存储过程的文本信息 ,[object Object],[object Object],[object Object],[object Object],10.2.3  修改存储过程
(3) 使用 ALTER PROCEDURE 语句对 employee_dep 过程进行修改,使其能够显示出所有男员工,并使 employee_dep 过程以加密方式存储在表 syscomments 中 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],10.2.3  修改存储过程
执行修改后的存储过程 employee_dep , 结果如图: 10.2.3  修改存储过程
(4) 从系统表 sysobjects 和 syscomments 提取修改后的存储过程 employee_dep 的文本信息可以运行步骤( 2 )中的代码,结果如图  ,[object Object],10.2.3  修改存储过程
10.2.4  删除存储过程  ,[object Object],[object Object],[object Object],[object Object],10.2  存储过程的创建与使用
[object Object],[object Object],10.2.4  删除存储过程
2.  使用 DROP PROCEDURE 删除存储过程 ,[object Object],[object Object],[object Object],[object Object],[object Object],10.2.4  删除存储过程
10.2.5  存储过程参数与状态值 ,[object Object],[object Object],[object Object],[object Object],10.2  存储过程的创建与使用
(1) 输入参数 ,[object Object],10.2.5  存储过程参数与状态值
例 10-3  创建带参数的存储过程,从表 employee 、 sell_order 、 goods 、 goods_classification 的连接中返回输入的员工名、该员工销售的商品名、商品类别、销售量等信息。 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],10.2.5  存储过程参数与状态值
[object Object],[object Object],[object Object],10.2.5  存储过程参数与状态值 ,[object Object],[object Object]
例  在数据库 employees 中 创建带参数的存储过程,用于查询某员工所负责项目的平均项目标的信息,该存储过程包含一个输入参数,一个输出参数和一个返回值。 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],10.2.5  存储过程参数与状态值
执行存储过程 ,[object Object],[object Object]
执行时,参数可以由位置标识,也可以由名字标识。 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],10.2.5  存储过程参数与状态值
(2) 输出参数 ,[object Object],[object Object],10.2.5  存储过程参数与状态值
例 10-4  创建存储过程 price_goods ,通过输入参数在 goods 表中查找商品,以输出参数获取商品单价。 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],10.2.5  存储过程参数与状态值
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],EXECUTE 语句还需要关键字 OUTPUT 以允许参数值返回给变量。 10.2.5  存储过程参数与状态值
[object Object],[object Object],[object Object],2.  返回存储过程的状态 10.2.5  存储过程参数与状态值
例 10-5  创建存储过程,输入商品类别,返回各种商品名称。在存储过程中,用值 15 表示用户没有提供参数;值 -l01 表示没有输入商品类别;值 0 表示过程运行没有出错。 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],10.2.5  存储过程参数与状态值
[object Object],[object Object],(2) 捕获返回状态值 10.2.5  存储过程参数与状态值
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],例 10-5 的存储过程 cl_goods 执行时使用以下语句: 10.2.5  存储过程参数与状态值
[object Object],[object Object],10.3  触发器概述
[object Object],[object Object],[object Object],[object Object],触发器的作用
[object Object],[object Object],[object Object],[object Object],创建触发器的规则
[object Object],[object Object],[object Object],[object Object],创建触发器包含的要素
[object Object],[object Object],[object Object],10.4  触发器的创建与使用
[object Object],[object Object],[object Object],10.4.1  创建触发器 10.4  触发器的创建与使用
[object Object],10.4.1  创建触发器
[object Object],[object Object],10.4.1  创建触发器
2.  使用 CREATE TRIGGER 语句创建触发器 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],10.4.1  创建触发器
例 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],10.4.1  创建触发器
例 10-6  在 employee 表上创建一个 DELETE 类型的触发器,该触发器的名称为 tr_employee 。 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],10.4.1  创建触发器
(2) 执行触发器 tr_employee ,[object Object],[object Object],[object Object],[object Object],[object Object],10.4.1  创建触发器
[object Object],[object Object],[object Object],[object Object],3. Deleted 表和 Inserted 表 10.4.1  创建触发器
例 10-7  为表 customer 创建一个名为 test_tr 的触发器,当执行添加、更新或删除时,激活该触发器。 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],10.4.1  创建触发器
例  确保数据完整性 ,[object Object],[object Object],[object Object],10.4.1  创建触发器
例  确保数据完整性  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],10.4.1  创建触发器
例  确保数据完整性 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],10.4.1  创建触发器
例  确保引用完整性  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],10.4.1  创建触发器
例  确保引用完整性  ,[object Object],[object Object],10.4.1  创建触发器
例  确保引用完整性  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],10.4.1  创建触发器
例  封装事务规则  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],10.4.1  创建触发器
10.4.2  删除触发器 ,[object Object],[object Object],[object Object],10.4  触发器的创建与使用
[object Object],[object Object],10.4.2  删除触发器
2.  使用 DROP TRIGGER 删除指定触发器 ,[object Object],[object Object],[object Object],[object Object],10.4.2  删除触发器
10.4.3  修改触发器 ,[object Object],[object Object],[object Object],10.4  触发器的创建与使用
2.  使用企业管理器修改触发器的正文 ,[object Object],[object Object],[object Object],[object Object],[object Object],10.4.3  修改触发器
3.  使用 ALTER TRIGGER 语句修改触发器 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],10.4.3  修改触发器
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],例如,将例 10-6 的触发器 tr_employee 修改为 INSERT 操作后进行。 10.4.3  修改触发器
[object Object],[object Object],10.5  事务处理
[object Object],[object Object],10.5.1  事务概述 10.5  事务处理
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],1 .事务的由来 10.5.1  事务概述
2 .事务属性 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],10.5.1  事务概述
3 .事务模式 ,[object Object],[object Object],[object Object],[object Object],10.5.1  事务概述
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],10.5.2  事务管理 10.5  事务处理
例 10-8  建立一个显式事务以显示 Sales 数据库的 employee 表的数据。 ,[object Object],[object Object],[object Object],[object Object],10.5.2  事务管理
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],例 10-9  建立一个显式命名事务以删除 department 表的“仓储部”记录行。 10.5.2  事务管理
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],例 10-10  隐性事务处理过程。 10.5.2  事务管理
[object Object],[object Object],[object Object],[object Object],2 .事务回滚 10.5.2  事务管理
事务回滚到指定位置 ,[object Object],[object Object],[object Object],10.5.2  事务管理
例 10-11  使用 ROLLBACK TRANSACTION 语句标识事务结束。 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],10.5.2  事务管理
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],例 10-12  删除仓储部,再将仓储部的职工划分到总经理办。
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],例 10-13  为表 goods 定义触发器 trig_uptab ,如果 goods 表更新数据,则把新数据复制到表 newgoods 中,若出错,则取消复制操作。 10.5.2  事务管理
[object Object],3 .事务嵌套 10.5.2  事务管理
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],例 10-14  提交事务。 10.5.2  事务管理 运行结果: 3 2 1 0
[object Object],[object Object],[object Object],[object Object],10.6  SQL Server 的锁机制
[object Object],10.6.1  锁模式 10.6 SQL Server 的锁机制
[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],允许一个事务锁定的资源类型 10.6.1  锁模式
确定并发事务访问资源方式的锁模式 : ,[object Object],[object Object],[object Object],10.6.1  锁模式
从程序员的角度,锁可以分为以下两种类型:  ,[object Object],[object Object],10.6.1  锁模式
[object Object],[object Object],10.6.2  隔离级别 10.6 SQL Server 的锁机制
[object Object],[object Object],隔离级别是一个事务必须与其他事务进行隔离的程度。 10.6.2  隔离级别
[object Object],[object Object],[object Object],[object Object],SQL Server 支持以下 4 种隔离级别: 10.6.2  隔离级别
使用 SET TRANSACTION ISOLATION LEVEL 语句设置会话的隔离级别  ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],10.6.2  隔离级别
[object Object],[object Object],10.6.3  查看和终止锁 10.6 SQL Server 的锁机制
右键单击任务板窗口中的对象,从快捷菜单中选择“属性”选项,则会出现锁的进程细节对话框。在此,可以刷新或终止锁的进程。 10.6.3  查看和终止锁
[object Object],[object Object],[object Object],2 .用系统存储过程 sp_lock  查看锁 10.6.3  查看和终止锁
例如,显示当前系统中所有的锁,结果如图。 10.6.3  查看和终止锁
又如,显示编号为 52 的锁的信息  10.6.3  查看和终止锁
终止进程: ,[object Object],[object Object],[object Object],10.6.3  查看和终止锁
终止进程: ,[object Object],[object Object],10.6.3  查看和终止锁
防止死锁应遵循以下原则: ,[object Object],[object Object],[object Object],[object Object],10.6.3  查看和终止锁
10.6 SQL Server 的锁机制 本章小结 (1) 存储过程是一组 SQL 语句和流程控制语句的集合,以一个名字存储并作为一个单元处理。存储过程用于完成某项任务,它可以接受参数、返回状态值和参数值,并且实现嵌套调用。 (2)  触发器就其本质而言是一种特殊的存储过程,有 3 种类型:插入触发器、更新触发器和删除触发器。 (3) 创建、删除、查看、修改存储过程和触发器可以使用企业管理器或 Transact-SQL 语句。 (4) 存储过程和触发器的各种信息的查看、修改还可以使用系统存储过程 sp_helptext 、 sp_rename 、 sp_helptrigger 、 sp_depends 实现。 (5) 事务是一个操作序列,它包含了一组数据库操作命令,所有的命令作为一个整体一起向系统提交或撤消操作请求,即要么都执行,要么都不执行。  (6) 锁是在多用户环境下对资源访问的一种限制。当对一个数据源加锁后,此数据源就有了一定的访问限制。 (7)  事务与锁也是保证数据完整性和正确性的机制,可以确保数据能够正确地被存储、修改,而不会造成数据在存储或修改过程中因事故或其他用户的中断而导致的数据不完整。

Weitere ähnliche Inhalte

Ähnlich wie 第10章 存储过程与触发器

分会场六用Storage foundation简化操作系统和存储系统的迁移
分会场六用Storage foundation简化操作系统和存储系统的迁移分会场六用Storage foundation简化操作系统和存储系统的迁移
分会场六用Storage foundation简化操作系统和存储系统的迁移ITband
 
ADO.NET Entity Framework 4
ADO.NET Entity Framework 4ADO.NET Entity Framework 4
ADO.NET Entity Framework 4Raffaele Fanizzi
 
Lecture exch2k7 21_10_08 - copy
Lecture exch2k7 21_10_08 - copyLecture exch2k7 21_10_08 - copy
Lecture exch2k7 21_10_08 - copyArcobaleno Nesta
 
CodeFest 2010. Желтов А. — Погружение в Internet Explorer 9 для разработчиков
CodeFest 2010. Желтов А. — Погружение в Internet Explorer 9 для разработчиковCodeFest 2010. Желтов А. — Погружение в Internet Explorer 9 для разработчиков
CodeFest 2010. Желтов А. — Погружение в Internet Explorer 9 для разработчиковCodeFest
 
Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储 Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储 zhen chen
 
第2章 asp
第2章  asp第2章  asp
第2章 aspbillao
 
Qt编程介绍
Qt编程介绍Qt编程介绍
Qt编程介绍easychen
 
Entity+framework+
Entity+framework+Entity+framework+
Entity+framework+Rey zhang
 
Fatih BAZMAN CodeIgniter Sunumu
Fatih BAZMAN CodeIgniter SunumuFatih BAZMAN CodeIgniter Sunumu
Fatih BAZMAN CodeIgniter SunumuFatih Bazman
 
IIS7.5概要 10月17日
IIS7.5概要 10月17日IIS7.5概要 10月17日
IIS7.5概要 10月17日hirookun
 
Lecture16
Lecture16Lecture16
Lecture16orgil
 
详细介绍什么是Java虚拟机(JVM)介绍资料
详细介绍什么是Java虚拟机(JVM)介绍资料详细介绍什么是Java虚拟机(JVM)介绍资料
详细介绍什么是Java虚拟机(JVM)介绍资料wensheng wei
 
2010 06 15 SecondNug - JAVA vs NET
2010 06 15 SecondNug - JAVA vs NET2010 06 15 SecondNug - JAVA vs NET
2010 06 15 SecondNug - JAVA vs NETBruno Capuano
 

Ähnlich wie 第10章 存储过程与触发器 (16)

分会场六用Storage foundation简化操作系统和存储系统的迁移
分会场六用Storage foundation简化操作系统和存储系统的迁移分会场六用Storage foundation简化操作系统和存储系统的迁移
分会场六用Storage foundation简化操作系统和存储系统的迁移
 
ADO.NET Entity Framework 4
ADO.NET Entity Framework 4ADO.NET Entity Framework 4
ADO.NET Entity Framework 4
 
Lecture exch2k7 21_10_08 - copy
Lecture exch2k7 21_10_08 - copyLecture exch2k7 21_10_08 - copy
Lecture exch2k7 21_10_08 - copy
 
Resume Kankeyan
Resume KankeyanResume Kankeyan
Resume Kankeyan
 
CodeFest 2010. Желтов А. — Погружение в Internet Explorer 9 для разработчиков
CodeFest 2010. Желтов А. — Погружение в Internet Explorer 9 для разработчиковCodeFest 2010. Желтов А. — Погружение в Internet Explorer 9 для разработчиков
CodeFest 2010. Желтов А. — Погружение в Internet Explorer 9 для разработчиков
 
Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储 Ria的强力后盾:rest+海量存储
Ria的强力后盾:rest+海量存储
 
第2章 asp
第2章  asp第2章  asp
第2章 asp
 
Qt编程介绍
Qt编程介绍Qt编程介绍
Qt编程介绍
 
Entity+framework+
Entity+framework+Entity+framework+
Entity+framework+
 
FISL11 2010 - Automação de Datacenters
FISL11 2010 - Automação de DatacentersFISL11 2010 - Automação de Datacenters
FISL11 2010 - Automação de Datacenters
 
Fatih BAZMAN CodeIgniter Sunumu
Fatih BAZMAN CodeIgniter SunumuFatih BAZMAN CodeIgniter Sunumu
Fatih BAZMAN CodeIgniter Sunumu
 
IIS7.5概要 10月17日
IIS7.5概要 10月17日IIS7.5概要 10月17日
IIS7.5概要 10月17日
 
Lecture16
Lecture16Lecture16
Lecture16
 
详细介绍什么是Java虚拟机(JVM)介绍资料
详细介绍什么是Java虚拟机(JVM)介绍资料详细介绍什么是Java虚拟机(JVM)介绍资料
详细介绍什么是Java虚拟机(JVM)介绍资料
 
2010 06 15 SecondNug - JAVA vs NET
2010 06 15 SecondNug - JAVA vs NET2010 06 15 SecondNug - JAVA vs NET
2010 06 15 SecondNug - JAVA vs NET
 
Jetty Introduction
Jetty IntroductionJetty Introduction
Jetty Introduction
 

Mehr von hanmo1988

第10章 (续)事务
第10章 (续)事务 第10章 (续)事务
第10章 (续)事务 hanmo1988
 
第9章 t sql程序设计
第9章 t sql程序设计第9章 t sql程序设计
第9章 t sql程序设计hanmo1988
 
第9章 transact sql程序设计
第9章   transact sql程序设计第9章   transact sql程序设计
第9章 transact sql程序设计hanmo1988
 
第7章 索引和视图
第7章 索引和视图第7章 索引和视图
第7章 索引和视图hanmo1988
 
第6章 数据查询
第6章 数据查询第6章 数据查询
第6章 数据查询hanmo1988
 
第5章 sql server表的管理
第5章 sql server表的管理第5章 sql server表的管理
第5章 sql server表的管理hanmo1988
 
第4章 sql server数据库的管理
第4章   sql server数据库的管理第4章   sql server数据库的管理
第4章 sql server数据库的管理hanmo1988
 
第2章 关系数据库基本原理
第2章  关系数据库基本原理第2章  关系数据库基本原理
第2章 关系数据库基本原理hanmo1988
 
第1章 数据库系统概论
第1章   数据库系统概论第1章   数据库系统概论
第1章 数据库系统概论hanmo1988
 

Mehr von hanmo1988 (10)

第11章
第11章 第11章
第11章
 
第10章 (续)事务
第10章 (续)事务 第10章 (续)事务
第10章 (续)事务
 
第9章 t sql程序设计
第9章 t sql程序设计第9章 t sql程序设计
第9章 t sql程序设计
 
第9章 transact sql程序设计
第9章   transact sql程序设计第9章   transact sql程序设计
第9章 transact sql程序设计
 
第7章 索引和视图
第7章 索引和视图第7章 索引和视图
第7章 索引和视图
 
第6章 数据查询
第6章 数据查询第6章 数据查询
第6章 数据查询
 
第5章 sql server表的管理
第5章 sql server表的管理第5章 sql server表的管理
第5章 sql server表的管理
 
第4章 sql server数据库的管理
第4章   sql server数据库的管理第4章   sql server数据库的管理
第4章 sql server数据库的管理
 
第2章 关系数据库基本原理
第2章  关系数据库基本原理第2章  关系数据库基本原理
第2章 关系数据库基本原理
 
第1章 数据库系统概论
第1章   数据库系统概论第1章   数据库系统概论
第1章 数据库系统概论
 

第10章 存储过程与触发器

  • 1. 第 10 章 存储过程与触发器
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34. 执行修改后的存储过程 employee_dep , 结果如图: 10.2.3 修改存储过程
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.
  • 92.
  • 93.
  • 94.
  • 95.
  • 96.
  • 97.
  • 98.
  • 99.
  • 100.
  • 101.
  • 102.
  • 103.
  • 104.
  • 105.
  • 106.
  • 108.
  • 110. 又如,显示编号为 52 的锁的信息 10.6.3 查看和终止锁
  • 111.
  • 112.
  • 113.
  • 114. 10.6 SQL Server 的锁机制 本章小结 (1) 存储过程是一组 SQL 语句和流程控制语句的集合,以一个名字存储并作为一个单元处理。存储过程用于完成某项任务,它可以接受参数、返回状态值和参数值,并且实现嵌套调用。 (2) 触发器就其本质而言是一种特殊的存储过程,有 3 种类型:插入触发器、更新触发器和删除触发器。 (3) 创建、删除、查看、修改存储过程和触发器可以使用企业管理器或 Transact-SQL 语句。 (4) 存储过程和触发器的各种信息的查看、修改还可以使用系统存储过程 sp_helptext 、 sp_rename 、 sp_helptrigger 、 sp_depends 实现。 (5) 事务是一个操作序列,它包含了一组数据库操作命令,所有的命令作为一个整体一起向系统提交或撤消操作请求,即要么都执行,要么都不执行。 (6) 锁是在多用户环境下对资源访问的一种限制。当对一个数据源加锁后,此数据源就有了一定的访问限制。 (7) 事务与锁也是保证数据完整性和正确性的机制,可以确保数据能够正确地被存储、修改,而不会造成数据在存储或修改过程中因事故或其他用户的中断而导致的数据不完整。