数据库原理与SQL Server第九章
数据库原理与SQL Server应用 (高金兰 著) 武汉大学出版社 课后答案

ADD FILE
(NAME =ZYGLBAK ,
FILENAME ='E:\zygl_Data1.NDF' ,
SIZE = 1, MAXSIZE =50, FILEGROWTH = 10%)
--6
DROP DATABASE ZYGL
第六章二设计题答案
--1.
Create database scd
Insert intoclassvalues(‘112’,’高分子化学’,’化学’,2006 )
Insert intodepartmentvalues(‘001’,‘数学’);
Insert intodepartmentvalues(‘002’,‘计算机’);
Insert intodepartmentvalues(‘003’,‘化学’)
借书人:借书证号、姓名、单位
出版社:出版社名、邮编、地址、电话、E-mail
其中约定:任何人可以借多种书,任何一种书可以被多个人借,借书和还书时,要登记相应的借书日期和还书日期;一个出版社可以出版多种书籍,同一本书仅为一个出版社所出版,出版社名具有惟一性。
根据以上情况,完成如下设计:
(1)设计系统的E-R图;
where姓名=‘张山’
--4)
Update student set年龄=年龄+1
--3.
--1)
--要删除年龄列,应先删除该列上的约束,再删除
Alter table student dropconstraint ck_nl, df_nl
--删除年龄列
Alter table student drop column年龄
--2.
--1)
第九章__SQL_Server数据库基础PPT课件

编辑版pppt
16
(3) 文件组
为了便于分配和管理,SQL Server允许将多个文件归纳为一组, 并赋予此组一个名称,这就是文件组(File Group),文件组是 将多个数据库文件集合起来形成的一个整体。每个文件组有一个 组名。一个文件只能存在于一个文件组中,一个文件组也只能被 一个数据库使用。
编辑版pppt
15
⑵ 数据库文件
采用多个数据库文件来存储数据的优点体现在: 数据库文件可以不断扩充而不受操作系统文件大小的限制。 可以将数据库文件存储在不同的硬盘中,这样可以同时对几个硬
盘做数据存取,提高了数据处理的效率,这对于服务型的计算机 尤为有用。 事务日志文件 事务日志文件(Transaction Log File)是用来记录数据库更新 情况的文件,扩展名.ldf。例如,使用INSERT,UPDATE, DELETE等对数据库进行更改的操作都会记录在此文件中,而如 SELECT等对数据库内容不会有影响的操作则不会记录在案。一 个数据库可以有一个或多个事务日志文件。 SQL Server中采用“提前写日志( Write-Ahead Logging)” 方式,即对数据库的修改先写入事务日志中,再写入数据库。
SQL服务器中每个数据库,都有相应的一行
每个Windows用户, Windows工作组,SQL服务器用户和 SQL服务器角色,都有相应的一行
sysobjects 全部 数据库中每个对象,都有相应的一行
编辑版pppt
19
⑵ 数据类型
SQL Server 2000的数据类型分为系统数据类 型与自定义数据类型。
编辑版pppt
21
⑷ 用户自定义函数
在SQL Server 2000 中,用户可以创建自定义 函数。在SQL Server 2000中用户自定义函数 是作为一个数据库对象来管理的。可以使用企 业管理器或Transat-SQL命令来创建,修改, 删除。
精品课件-数据库原理与SQL Server-第9章

第9章 数据完整性管理
9.1 批处理 9.2 事务 9.3 锁 9.4 @@ERROR 小结 习题
ห้องสมุดไป่ตู้
第9章 数据完整性管理
9.1 批 处 理 批处理是一组SQL语句的集合,一个批处理以批处理结束符 GO而终结。批处理中的所有语句被一次提交给SQL Server 2005, SQL Server 2005将这些语句编译为一个执行单元,称SQL Server 2005执行计划。 实例9-1 在数据库student中建立一个名为s_view的视图。 在查询编辑器中输入SQL语句并执行,如图9-1所示。
第9章 数据完整性管理
9.2.6 使用事务时的注意事项 (1) 事务应尽可能短。因为SQL Server 2005为了确保事务
遵守ACID规则,要占用大量的资源,因此长时间运行事务的代 价是昂贵的。尽管这在用户数较少的系统中不会成为大问题, 但是在支持很多用户的系统中,如果事务太长,系统性能将会 严重下降。
第9章 数据完整性管理
设置事务优先级语句的基本语法格式为: SET DEADLOCK_PRIORITY {low | normal}
另外,用户还可以设置事务请求锁定的最长等待时间。如 果一个事务的锁请求超过了最长等待时间,则该事务被自动回 滚而结束。
设置事务请求锁定的最长等待时间语句的基本语法格式为: SET LOCK_timeout <时间长度>
第9章 数据完整性管理
图9-5 显示系统中的锁信息
第9章 数据完整性管理
9.3.5 使用锁时的注意事项 与事务类似,设计锁策略时也需要小心。对于少数几个用
户来说,所有事务只使用一种类型的锁(细粒度)可能还行,但 是当应用程序规模扩大时,就会发现服务器的性能下降。因此, 当设计锁时应注意以下几点:
数据库原理及应用(何玉洁)-第9章

17
“保存查询”对话框 保存查询” 保存查询
18
2000基础 第9章 SQL Server 2000基础
1
9.1 SQL Server 2000概述 概述
2000共提供了四个服务 共提供了四个服务: SQL Server 2000共提供了四个服务: 1、SQL Server 2000的最核心的服务 的最核心的服务。 是SQL Server 2000的最核心的服务。 2、SQL Server Agent 能够根据系统管理员预先设定好的计划自动执行相 应的功能。 应的功能。 Coordinator(DTC) 3、Distributed Transaction Coordinator(DTC) 分布式事务处理协调器是一个事务管理器 是一个事务管理器, 分布式事务处理协调器是一个事务管理器,在DTC 支持下, 支持下,客户可以在一个事务中访问不同服务器上的数 据库。 据库。 4、Microsoft Search 能够对字符数据进行检索。
7
8
2、查询分析器
SQL查询分析器( Analyaer) SQL查询分析器(Query Analyaer)是一个 查询分析器 图形化的查询工具, 图形化的查询工具,用于以文本的方式编辑 Transact-SQL语句,然后发送给服务器, Transact-SQL语句,然后发送给服务器,并接 语句 受执行的结果。使用这个工具, 受执行的结果。使用这个工具,用户可以交互 地设计和测试Transact-SQL语句、 地设计和测试Transact-SQL语句、批处理和脚 Transact 语句 本。
5
图9-19 连接成功后的企业管理器
6
Server数据库 SQL Server数据库 Master数据库 Master数据库 是一个非常重要的数据库, 是一个非常重要的数据库,记录了一些关于 Server系统相关信息 系统相关信息。 SQL Server系统相关信息。 注意:千万不要在master master数据库中创建用户 注意:千万不要在master数据库中创建用户 的对象 Model数据库 Model数据库 可用来作为创建系统中的所有数据库模板。 可用来作为创建系统中的所有数据库模板。 Msdb数据库 Msdb数据库 用来处理有关SQL Server代理程序内的警 用来处理有关SQL Server代理程序内的警 操作员及作业等工作, 告、操作员及作业等工作,例如当警告发生时通 知哪个操作员等相关记录。 知哪个操作员等相关记录。 Tempdb数据库 Tempdb数据库 包含所有的暂存表格与暂存存储过程。 包含所有的暂存表格与暂存存储过程。
第9章SQL SERVER 2012

9.1.3 SQL Server 2012的主要组件与实用程序
Hale Waihona Puke ❖ SQL Server Management Studio管理器的使用
❖ Microsoft SQL Server Management Studio(SQL Server 集成管理器)是 Microsoft SQL Server 2012 提供的一种新 集成环境,用于访问、配置、控制、管理和开发 SQL Server 的所有组件。SQL Server Management Studio 将早 期版本的 SQL Server 中所包含的企业管理器、查询分析器 和 Analysis Manager 功能整合到单一的环境中。此外, SQL Server Management Studio 提供了用于数据管理和图 形工具和功能丰富的开发环境。
图9.5 属性工具栏
数据库原理与应用教程
❖ 方法二:在已注册的服务器中,右键单击您的服务器名,选择“连接”, 再单击“新建查询”。在这种情况下,查询编辑器将使用已注册的服务 器的连接信息。如图9.6所示。
图9.6 显示查询窗口
数据库原理与应用教程
❖ 在查询窗口输入Transact-SQL查询语句,执行后,可以将查 询结果以3种不同的方式显示。点击编辑窗口的空白处,在 右键弹出的快捷菜单中,选择“将结果保存到”中的三个显 示方式:以文本格式显示结果、以网络显示结果、将结果保 存到文件。如图9.7所示。
SQL Server 2012 的综合分析、集成和数据迁移功能使 各个企业无论采用何种基础平台都可以扩展其现有应用程序 的价值。构建于 SQL Server 2012 的 BI(Business Intelligence,商业智能) 解决方案使所有员工可以及时获 得关键信息,从而在更短的时间内制定更好的决策。
山东大学威海第九章实验代码《数据库原理与应用教程 SQL Server》(尹志宇 郭晴 著)

第九章数据库查询实验报告一实验准备建立学生表use教学库gocreate table学生(学生号char(7)primary key,姓名char(8)not null,性别char(2),年龄int,)建立选课表use教学库gocreate table选课(学生号char(8),课程号char(16)not null,成绩intconstraint pk_js primary key(学生号,课程号))建立课程表use教学库gocreate table课程(课程号char(8)primary key,课程名char(16)not null,学分int)学生表插入数据use教学库insert into学生(学生号,姓名,性别,年龄)values ('0101001','王华','男','19'),('0101002','王通','男','20'),('0101003','王菲','女','21'),('0101004','冷芳','男','21'),('0101005','王密','女','20'),('0101006','刘浩','女','19'),('0101007','孙艳','女','19')选课表中插入数据use教学库insert into选课(学生号,课程号,成绩)values ('0101001','C001','91'),('0101001','C002','89'),('0101001','C003','93'),('0101001','C004','85'),('0101002','C002','81'),('0101002','C003','84'),('0101002','C005','83'),('0101002','C004','89'),('0101003','C004','91'),('0101004','C001','85'),('0101004','C003','81'),('0101005','C001','94'),('0101005','C003','86'),('0101006','C001','87'),('0101007','C003','91'),('0101007','C005','95'),('0101007','C004','90')课程表中插入数据use教学库insert into课程(课程号,课程名,学分)values ('C001','计算机网络','3'),('C002','计算机文化基础','3'),('C003','专业英语','2'),('C004','信号与系统','4'),('C005','数字信号处理','4')二1 针对教学库中的三个表完成下面问题(1)统计有学生选修的课程门数use教学库select COUNT(distinct课程号)课程门数from选课结果(2)求选修C004课程学生的平均年龄use教学库select avg(年龄)平均年龄from学生,选课where学生.学生号=选课.学生号and课程号='C004'(3)求学分为3的每一门课程的学生平均成绩use教学库select课程.课程名,avg(成绩)平均成绩from课程,选课where课程.课程号=选课.课程号and学分=3group by课程.课程名(4)统计每一门课程的学生选修人数,超过3人的课程才统计。
数据库技术与应用—SQL_Server_2008(第2版)第9章_视图

【例9.1】建立计算机系学生的视图。 CREATE VIEW vw_Stu_jsj1 AS SELECT studentID, studentName, sex, speciality FROM Student WHERE speciality = '计算机' 本查询省略了视图列名,隐含为与 SELECT 语句中的列相同 的名称。
参数说明
column:视图中的列使用的名称。
组成视图的列名要么全部省略要么全部指定,没有第三 种选择。如果省略了视图的各个列名,则视图列将获得 与SELECT语句中的列相同的名称。 但是对于下列情况,必须在视图定义中指定每列的名称: 视图中有任何从算术表达式、内置函数或常量派生出 的列。 视图中两列或多列具有相同名称(通常由于视图定义 包含联接,而来自两个或多个不同表的列具有相同的 名称)。 希望使视图中的列名与它的源列名不同。这时也可以 在视图中重命名列。无论重命名与否,视图列都会继 承其源列的数据类型。
9.4 通过视图查询数据
视图定义好后,用户就可以像对基本表一样对视图进行查 询了。 【例9.7】在计算机系学生的视图中找出所有女生信息。
SELECT studentID, studentName, sex FROM vw_Stu_jsj1 WHERE sex= '女‘
系统执行对视图的查询时,首先进行有效性检查,以确认 查询中涉及到的表、视图等是否存在。如果存在,则从数 据字典中取出视图的定义,把定义好的子查询和用户的查 询结合起来,转换成等价的对基本表的查询。 例如,本例的查询就相当于执行了下面的SQL语句:
视图的分类
数据库技术与应用SQLServer2008第9章习题参考答案

数据库技术与应用SQLServer2008第9章习题参考答案第9章习题解答1.思考题(1)VB对象的3要素是指什么?它们的作用是什么?答:对象的属性、方法、事件就称为对象的三要素。
1)属性属性描述对象的性质或特征,即该对象是什么样的。
2)方法方法反映对象的行为,即该对象会干什么。
3)事件事件指明对象在什么条件下发生什么事情,即在什么条件下执行哪段代码。
(2)什么是变量的作用域?作用域有哪些类型?什么是变量的生存期?生存期有哪些类型?答:1)变量的作用域是指变量的有效范围。
2)根据作用域,变量可分为局部变量、窗体级变量、模块级变量、全局变量。
局部变量:在过程体内部定义,其作用域是从定义起到所在语句块或过程结束为止的局部范围,其他地方不能使用。
窗体级变量:是在窗体代码的通用声明区用Dim或Private关键字定义的变量,它不属于该窗体的任何过程,可以被本窗体内的所有过程访问,而不能为其他窗体或模块使用。
窗体级变量与窗体的生存期一样,只要窗体不消失,它就不消失。
模块级变量:与窗体级变量同级别,它是在模块的“通用声明”区用Dim或Private 关键字定义的变量。
它不属于该模块的任何过程,可以被本模块内的所有过程访问,而不能用在其他模块或窗体中。
全局变量:是在窗体或模块的通用声明区用Public关键字进行定义的变量,它在整个工程的所有过程中均可使用,且在应用程序运行过程中一直存在。
3)变量的生存期表示它可以存储值的时间周期。
在生存期内变量的值可以更改,但变量总是存储某些值。
即指在程序执行的动态过程中,变量在哪个阶段是存在的。
4)局部变量根据生存期分为动态局部变量和静态局部变量,两者的区别是:(a)动态局部变量的生存期是:程序执行到定义该变量的Dim 语句时,在内存建立起该变量,此时该变量“诞生”了;程序继续往下执行到该变量所在的程序块(或过程)结束时,该变量“死亡”,其代表的值也不复存在。
如果该变量所在过程再次执行,再次执行到定义该变量的Dim语句则一个新的变量“诞生”,与上次已“死亡”的同名的变量毫无关系。
sql server 第九章

电脑基础·实例·上机系列丛
清华大学出版社
SQL Server数据库应用教程
sp_helptext执行结果
sp_helptext 执行结果
电脑基础·实例·上机系列丛
清华大学出版社
SQL Server数据库应用教程
扩展存储过程(Extended stored Procedure)
就是外挂程序,用于扩展SQL Server 2000的功能,是可以动态装载并执行的 动态链接库(DLL)。扩展存储过程直 接在SQL Server的地址空间运行,并使 用 SQL Server 开放式数据服务(ODS) API编程。
电脑基础·实例目标
SQL Server数据库应用教程
本章介绍了了存储过程的概念、用途、 创建方法,以及如何编写简单的存储过 程,通过本章学习将掌握存储过程的创 建、修改以及删除等。
电脑基础·实例·上机系列丛
清华大学出版社
本章要点
SQL Server数据库应用教程
存储过程的概念 建立和执行存储过程 存储过程的管理与维护 存储过程中参数的使用
在查询分析器中,执行以下语句:
exec xp_cmdshell 'dir c:'
电脑基础·实例·上机系列丛
清华大学出版社
SQL Server数据库应用教程
扩展存储过程(Extended stored Procedure)
该语句是通过xp_cmdshell扩展存储过程, 执行操作系统命令dir c:,列出当前操作 系统所在C盘上的文件和文件夹清单。
在SQL Server中存储过程分为3类:系 统存储过程、扩展存储过程和用户自定 义的存储过程。
电脑基础·实例·上机系列丛
清华大学出版社
sqlserver实验指导第4版第九章

第一部分:介绍SQL Server实验指导第4版第九章的背景和概述1. 背景介绍SQL Server是微软公司推出的一款关系型数据库管理系统,被广泛应用于企业级数据库管理和开发领域。
SQL Server实验指导第4版是一本非常权威的教材,其中的第九章主要涉及到SQL Server的高级特性和应用实践。
本章内容包括索引优化、存储过程、视图、触发器等方面的知识,是SQL Server数据库开发和管理者的必备知识。
2. 概述第四版第九章主要介绍了SQL Server数据库的高级应用技巧和实践经验,旨在帮助读者深入了解和掌握SQL Server数据库的高级特性和优化方法。
通过本书的学习,读者可以掌握SQL Server数据库的高效管理和开发技巧,为企业级数据库的设计和实施提供全面的支持和指导。
第二部分:索引优化1. 索引概述索引是数据库中用于提高检索效率的重要数据结构,通过合理设计和使用索引,可以大大提高数据库的查询性能。
本章将详细介绍SQL Server中索引的类型、设计原则和优化方法,帮助读者充分发挥索引在数据库中的作用。
2. 索引设计原则SQL Server中常见的索引类型包括聚集索引、非聚集索引、覆盖索引等,各种类型的索引都有其适用的场景和设计原则。
本章将介绍不同类型索引的设计原则和最佳实践,帮助读者根据具体业务需求和数据库结构选择合适的索引类型,并进行有效的索引优化。
3. 索引优化方法在实际的数据库开发和管理过程中,经常会遇到索引效率低下的问题,需要针对具体情况进行索引优化。
本章将介绍针对不同情况的索引优化方法,包括索引的创建、删除、修改和重建等操作,帮助读者解决索引性能不佳的问题。
第三部分:存储过程1. 存储过程概述存储过程是在数据库中预先编译好的一组SQL语句,经过编译后存储在服务器端,可以被多次调用和执行。
存储过程可以提高数据库的性能和安全性,并且可以减少应用程序和数据库之间的通信量。
本章将详细介绍SQL Server中存储过程的定义、参数传递、执行和维护等方面的知识。
SQL Server第9章

13
第2步
打开“数据转换服务”向导的欢迎窗口。
14
第3步
打开“选择数据源”窗口。数据源选择默认的 “用于SQL Server的Microsoft OLE DB提供程 序”,数据库选择“学生管理”。
15
第4步
打开“选择目的”对话框。“目的”选择“文本 文件”,“文件名”设置为C:\学生.txt 。
转换,就是本章中将要介绍的导入导出数据。
2
本章要点
导入导出数据方法概述
DTS概述
DTS导出向导 DTS导入向导
3
9.1.1 导入导出数据方法概述
导入/导出数据的可以有以下几种方法: 使用数据转换服务(Data Transformation Services,DTS)导入/导出向导或DTS设计器创 建可用于导入/导出和转换数据的DTS包。 使用SQL Server复制技术在整个企业内分发数 据。SQL Server中的复制技术可以制作数据复 本,将这些复本移到不同位置,以及自动同步 数据,从而使所有复本都具有相同的数据值。 可以在同一服务器或通过LAN、WAN或 Internet连接的不同服务器上的数据库之间执行 复制。
导入和导出进程期间执行复杂的数据验证、数
据清理和变换更加容易。
9
4. DTS 包工作流
DTS包工作流指包在执行过程中的步骤顺序,可以使用 下面的方法定义包工作流:
优先约束可以根据是否执行第一个任务、执行成功或执行
不成功来链接两个任务。可以使用优先约束在工作流中生 成条件分支。没有约束的步骤将立即执行,并且可以并行 执行几个步骤。
第4步
打开“选择文件格式”对话框,这里需要根据导 出数据时的格式设置。如果导出数据时采用的是 默认设置,则导入数据时也不需要做特殊设置。
精品课件-数据库原理与应用(第二版)-第9章

· 使用Reporting Services项目创建报表。 · 使用报表模型项目定义报表的模型。 · 使用Integration Services 项目创建包。
20
9.3.1 SQL Server 2005的新特征 SQL Server 2005和SQL Server 2000相比,在性能、可靠性、
14
9.2.2 系统数据库的作用 每个SQL Server实例均有四个系统数据库,它们是master、
tempdb、model和msdb。 1.master数据库 master数据库是SQL Server中最重要的数据库。它用于存储
SQL Server系统中的所有系统级信息,包括所有可用的数据库及 为每一个数据库分配的空间、使用中的进程、用户账户、活动的 锁、系统错误等信息和系统存储过程等。
1996年,微软公司又发布了Microsoft SQL Server 6.5系统。 这是微软公司独自发布的功能齐全、性能稳定的SQL Server版本。
5
1998年,微软公司又成功地推出了Microsoft SQL Server 7.0系统,开始进入企业级数据库市场。
2000年,微软公司发布了与传统SQL Server有重大不同的 Microsoft SQL Server 2000系统。
6
9.2 SQL Server的数据库结构
在SQL Server数据库中,数据被组织为用户可以看得见的逻 辑组件,这些逻辑组件主要包括基本表、视图、存储过程、触发 器和用户等。
SQL Server将用户可以看得见的这些逻辑组件物理地存储在 磁盘上的操作系统文件中。作为普通用户,只需要关心逻辑组件 的存在,而物理实现在很大程度上是透明的,一般只有数据库管 理员需要了解和处理数据库的物理实现。图
数据库原理与应用SQL Server 2005项目教程 第九章

9.1.1 标量函数
标量函数根据输入参数值的 不同来获得不同的函数值, 在标量函数中可以使用多个 输入参数,而函数的返回值 是单个数据值。 基本语法格式如下: CREATE FUNCTION 函数名称 ( [ {@参数名称 标量数据类型 [ = 默认值] }[,...n ] ] ) RETURNS 标量返回值类型 [AS] BEGIN 函数体 RETURN 标量表达式 END
ห้องสมุดไป่ตู้
9.1.1 标量函数
【例9-1】下面的SQL语句在数据库中创建了一个CubicVolume的用户定义 函数,然后使用该函数计算一个长方体的体积。 CREATE FUNCTION fn_CubicVolume (@CubeLength decimal(4,1),@CubeWidth decimal(4,1),@CubeHeight decimal(4,1)) RETURNS decimal(12,3) AS BEGIN RETURN (@CubeLength * @CubeWidth * @CubeHeight) END GO PRINT '长、宽、高分别为6、4、3的立方体的体积 ='+STR (dbo.fn_CubicVolume(6,4,3) GO
数据库原理与应用
SQL Server 2005项目教程
第九章
用
T-SQL语言的高级应
知识要点
用户定义函数的基本概念及使用 存储过程的基本概念及使用 游标的基本概念及使用 事务的基本概念及使用
触发器的基本概念及使用
项目实景
在数据库的开发中,可能会遇到这样的一些需求: 编好的SQL查询代码可以被其他开发人员或者程序调用以提高开发效率。 出于安全考虑需要对用户隐藏表的细节,但又可以让用户操作数据。 客户端程序中冗长的SQL查询语句运行的时候占用带宽,效率低下,希望 把这些代码转移到SQL Server服务器上去存储和执行,并且预先编译好以 提高执行效率。 SQL Server中提供的存储过程可以很好地解决上面的问题。存储过程可以 把SQL 代码组织成为可以重复调用的代码块,在服务器端编译执行。 解决代码重用的另一个好方法是定义函数。使用用户定义函数开发程序, 可以简化问题,提高效率。 在企业中,数据库开发人员可以使用用户定义函数、存储过程、游标、事 务、触发器实现复杂的逻辑,进行数据操作或者实现数据的完整性。合理 利用它们可以优化性能并增强安全性,更好地开发和维护应用程序。
数据库原理与应用教程(第3版)第9章 sql server 2005基础第三版

28
完成安装
2021/8/5
29
9.3 配置SQL Server 2005
• 利用SQL Server配置管理器(SQL Server Configuration Manager)实现。
• 单击“开始”“Microsoft SQL Server 2005”“配置工具”“SQL Server Configuration Manager”。
Studio工具
2021/8/5
2
9.1 SQL Server 2005平台构成
• 数据库引擎 • 分析服务(Analysis Services) • 集成服务(Integration Services) • 复制技术 • 通知服务(Notification Services) • 报表服务(Reporting Services) • 服务代理(Service Broker) • 全文搜索
国家“十一五”规划教材
数据库原理与应用教程(第3版)
2021/8/5
1
第9章 SQL Server 2005基础
• 9.1 SQL Server 2005平台构成 • 9.2 安装SQL Server 2005 • 9.3 配置SQL Server 2005 • 9.4 SQL Server Management
满足企业版的全部操作系统。 Windows 2000的Professional,同时安装SP4。 Windows XP Professional,同时安装SP2或更高版本。
满足企业版和标准版的全部操作足企业版、标准版和工作组版的全部操作系统。 Windows XP Home Edition,同时安装SP2或更高版本。 Windows Server 2003 Web Edition,同时安装SP1或更高版
第九章 SQL Server程序设计-数据库原理与技术(SQL Server 2008)-申时凯

图9-1 在查询分析器中执行批处理
9.1.2 脚本
脚本是以文件存储的一系列SQL语句,即一系列按顺序提 交的批处理。
T-SQL脚本中可以包含一个或多个批处理。GO语句是批处 理结束的标志。如果没有GO语句,则将它作为单个批处理行。
脚本可以在查询分析器中执行,也可以在isql或osql实用程 序中执行。查询分析器是建立、编辑和使用脚本的一个最好的 环境。在查询分析器中,不仅可以新建、保存、打开脚本文 件,而且可以输入和修改T-SQL语句,还可以通过执行T-SQL 语句来查看脚本的运行结果,从而检验脚本内容是否正确。
第九章 SQL Server程序设计
9.1 程序中的批处理、脚本、注释 9.2 程序中的事务 9.3 SQL Server变量 9.4 SQL语言流程控制 9.5 应用举例 练习题
目录
SQL Server中的编程语言就是T-SQL语言。
这是一种非过程化的语言。
不论是普通的Client/ Server应用程序,还是Web应用程序, 都必须通过向服务器发送T-SQL语言才能实现与SQL Server 的通信。
9.1.3 注释
注释是指程序中用来说明程序内容的语句,它不能执行且不参与程 序的编译。
注释用于语句代码的说明,或暂时禁用的部分语句。 为程序加上注释不仅能增强程序的可读性,而且有助于日后的管理
和维护,在程序中使用注释是一个程序员良好的编程习惯。 SQL Server支持两种形式的注释语句。
这个执行单元要么成功完成所有操作,要么就是失败,并将 所做的一切复原。
我们主要讨论SQL Server 2008中的事务机制。
由于事务的执行机制,确保了数据能够正确地被修改,避免 造成数据只修改一部分而导致数据不完整,或是在修改途中 受到其他用户的干扰。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
上一页
下一页
返回本章首页
第九单元 保证数据一致性
数据库原理与SQL Server
9.4.3 错误的处理
一般情况下,在错误发生后应该采取如 下一些错误处理方法: (1)放弃任务。 (2)立即退出或尝试继续执行。 (3)向用户发送消息解释错误原因。
上一页
下一页
返回本章首页
第九单元 保证数据一致性
数据库原理与SQL Server
上一页
下一页
返回本章首页
第九单元 保证数据一致性
数据库原理与SQL Server
9.2.1 事务的属性
事务是构成单一逻辑单元的操作的集合。 事务必须满足四个要求,称为ACID属性, 即原子性、一致性、隔离性以及持久性。
上一页
下一页
返回本章首页
第九单元 保证数据一致性
数据库原理与SQL Server
上一页
下一页
返回本章首页
第九单元 保证数据一致性
数据库原理与SQL Server
9.2.5 分布式事务
SQL Server 2000 可以通过网络,实现跨服务 器的数据操作,这种事务称为“分布式事务”。 分布式事务是一种非常强大的功能,但必须通 过网络来传送数据,因此出错的几率也就大大 增加了。为了解决这个问题,分布式事务的处 理被分成两个阶段:准备阶段和提交阶段,也 就是所谓的两阶段提交。 (1)准备阶段 (2)提交阶段
上一页 下一页 返回本章首页
第九单元 保证数据一致性
数据库原理与SQL Server
例9-2 提交事务。 脚本:
例9-3 回滚事务。 脚本:
上一页
下一页
返回本章首页
第九单元 保证数据一致性
数据库原理与SQL Server
9.2.3 隐式事务
SET IMPLICIT_TRANSACTION ON 使SQL Server 2000进入隐式事务处理模式,使用COMMIT TRANSACTION/WORK语句提交事务或者使用ROLLBACK TRANSACTION/WORK回滚事务。 SET IMPLICIT_TRANSACTION OFF 退出隐式事务处理模式。
上一页 下一页 返回本章首页
第九单元 保证数据一致性
数据库原理与SQL Server
9.3.4 检索锁信息
sp_lock [[@spid1=]‘<进程ID1>’][,[@spid2=]‘<进程ID2>’]。 其 中 , “ 进 程 ID1” 和 “ 进 程 ID2” 是 来 自 master.dbo.sysprocesses的SQL Server 2000进程ID号,数据 类型为int,默认值为NULL。如果没有指定进程ID号,则显 示所有锁的信息。 例9-5 显示所有S锁的信息。 脚本: USE master GO sp_lock GO
上一页
下一页
返回本章首页
第九单元 保证数据一致性
数据库原理与SQL Server
9.4.1 错误的产生
例9-6 插入一非法选课数据。
上一页
下一页
返回本章首页
第九单元 保证数据一致性
数据库原理与SQL Server
9.4.2 错误的捕获
1.@@ERROR: 如果为0则一切正常。 如果这个值不为0,则表示已经发生了一个错误。 2.@@ERROR的使用 IF @@ERROR<>0 BEGIN --错误处理部分 END 可以通过@@ERROR来检查是否发生了特定的错误。
上一页
下一页
返回本章首页
第九单元 保证数据一致性
数据库原理与SQL Server
3. 隔离性
如果有两个或者多个事务,这些事务必须 按照一定的顺序先后执行,而不能在执行 一个事务的同时,又穿插执行另外的一个 事务,也就是说,多事务并发执行时,应 保证执行的结果是正确的,如同单用户环 境一样。这可以通过锁来实现。
例9-4 隐式事务实例。 脚本:
上一页
下一页
返回本章首页
第九单元 保证数据一致性
数据库原理与SQL Server
9.2.4 自动事务
自动事务是SQL Server 2000默认的事务 处理模式。 在这种模式下,任何一个语句执行如果 成功,则它对数据库所作的修改马上被 自动提交,反之如果失败,则自动回滚。
返回本章首页
第九单元 保证数据一致性
数据库原理与SQL Server
9.2.2 显式事务
显式事务就是用户使用“事务处理语句”定义的事务。 事务处理语句主要包括: (1)BEGIN TRANSACTION 作用是启动一个事务,它标志着一个事务的开始。 (2)COMMIT TRANSACTION和COMMIT WORK 作用是提交事务。在事务中对数据库所作的修改,将在此时 进行提交,它标志着事务的结束。 (3)ROLLBACK TRANSACTION和ROLLBACK WORK 作用是回滚事务。通常如果在事务的执行过程中发生了错误, 需要执行这个语句,放弃事务中对数据库所作的修改,使数 据库恢复到事务开始之前的状态。
上一页 下一页 返回本章首页
第九单元 保证数据一致性
数据库原理与SQL Server
分布式事务处理过程
(1)使用BEGIN DISTRIBUTED TRANSACTION语句启 动一个分布式事务。此时该服务器成为本事务管理服 务器。 (2)应用程序执行分布式查询或执行远程服务器上的存储 过程。 (3)事务管理器调用 MS DTC,通知远程服务器开始参与 该分布式事务。 (4)应用程序执行提交事务或回滚事务的语句来结束事务。 此时事务管理器将调用MS DTC来管理两阶段提交过 程,本服务器和远程服务器提交或回滚事务。
上一页 下一页 返回本章首页
第九单元 保证数据一致性
数据库原理与SQL Server
9.3.5 使用锁时的注意事项
(1)遵守事务指导原则。 (2)对应用程序进行强度测试。指大量用户执行相同操作, 实际执行操作的用户数量应为应用程序可能有的最多 用户数。 (3)允许用户中止长时间运行的查询 (4)在查询期间禁止用户输入以减少查询的运行时间 (5)当一个查询在运行时,它将在资源上保持—个某种类 型的锁。 (6)虽然必要时能够改变查询和对象的锁,但实际应用中 应该尽可能让SQL Server 2000来管理锁。
上一页 下一页 返回本章首页
第九单元 保证数据一致性
数据库原理与SQL Server
9.3 锁
SQL Server 2000使用锁来防止多个用户 在同一时间内对同一数据进行修改,并 能防止一个用户查询正在被另一个用户 修改的数据,这都可能引起数据的混乱。 锁有助于保证数据库逻辑上的一致性。
上一页
下一页
上一页
下一页
返回本章首页
第九单元 保证数据一致性
数据库原理与SQL Server
9.2 事务
问题:如果在修改了数据库中数据之后又立即意识到 不该做这些修改时,应该怎样处理呢? 1. 最简单的办法,就是重新输入这些数据。但是,如 果已经修改了多个表中的一些数据时,想要重新输入, 就比较困难了。 2. 自动地将数据恢复到它们修改之前的原始状态。为 了解决这样的问题,SQL Server 2000提供了事务和锁 来保证数据的一致性和完整性。
上一页 下一页 返回本章首页
第九单元 保证数据一致性
数据库原理与SQL Server
例9-9 S中不存在‘1001’学号,或C中不存在 ‘C001’课程号,执行上述存储过程的情况。
上一页 下一页 返回本章首页
第九单元 保证数据一致性
数据库原理与SQL Server
9.2.6 使用事务时的注意事项
(1)事务应尽可能短 (2)定义有效的锁策略 锁可以防止用户读取已经被修改但还没有提交的数据。 (3)避免用户在事务中输入数据 (4)在浏览数据时避免打开事务 这有助于减少锁定问题。除此之外,事务的最大作用 在于修改数据,而不是检索数据。 (5)减少事务中所访问的数据量 因为事务处理中往往会锁定数据,这能够减少其他用 户可能遇到的锁问题,提高数据库的并发性。
上一页 下一页 返回本章首页
第九单元 保证数据一致性
数据库原理与SQL Server
9.4 @@ERROR
用户或者应用程序在访问数据库时,可能会出现使用 违背数据库要求的访问方式,即非正常的数据访问或 者操作,这时可能导致意外的发生。 SQL Server 2000具有完备的错误处理功能,能够完成: (1)判断错误是否发生。 (2)通知用户发生了错误。 (3)决定操作过程。 (4)恢复或放弃修改。
返回本章首页
第九单元 保证数据一致性
数据库原理与SQL Server
9.3.1 锁的类型
(1)排它锁:不允许读取、修改锁定资源 (2)共享锁:允许读取锁定资源 (3)更新锁:锁定资源 (4)结构锁:结构修改锁;结构稳定锁 (5)意向锁:意向锁说明SQL Server 2000有在资源上获得 共享锁或者排它锁的意向, 包括: 共享意向锁:指明事务试图在某一资源上获得共享锁。 排它意向锁:指明事务试图在某一资源上获得排它锁。 共享排它意向锁:指明事务试图在一些资源上获得共 享锁,而在其它一些资源上获得排它锁。
上一页 下一页 返回本章首页
第九单元 保证数据一致性
数据库原理与SQL Server
2. 一致性
SQL Server 2000能保证事务的一致性。 一致性意味着全部数据都保持在一致的 状态。在一个事务开始之前,数据库处 于一致的状态。当事务结束后,不管它 是成功还是失败的,数据库还应该处于 一致的状态。
第九单元 保证数据一致性
数据库原理与SQL Server
第九章 保证数据完整
9.1 批处理 9.2 事务 9.3 锁 9.4 @@ERROR 实训九 错误的捕获和处理