网络学院
迷城学吧
硬件
手机
旅游
生活
渔鱼
美图
电影
游戏
  导航: 迷城学吧 · 数据库类教程 · MSSQL教程 · Sql2000基础教程

sqlserver24学时教程连载21-第21学时 SQL Server编程

 
最新推荐文章
图文推荐
 
『sqlserver24学时教程连载21-第21学时 SQL Server编程』如果文章有大量图片,显示会较慢,请等待图片下载完成
 
点击数: 更新时间:2007-8-8 19:03:08 

    第21学时 SQL Server编程

    在前几个学时里,你已经学习了几乎所有编写 SQL Server脚本必须掌握的知识。由一些

    基本逻辑组成的这些脚本可以转换为功能强大的应用程序。 SQL Server提供若干不同的逻辑

    语句,可以加到你的脚本中。它们包括 IF……ELSE逻辑和用于循环的WHILE结构。SQL也为生

    成错误信息提供了功能,你可以把这些出错信息返回给用户。

    本学时的要点包括:

    通常意义上的编程

    批

    事务

    流控制

    注释

    变量

    21.1 通常意义上的编程

    SQL Server可以用来生成功能强大的应用程序。这通常是通过使用脚本、触发器、存储

    过程以及视图来实现的。当你首次设计这些应用程序时必须非常仔细。这种依赖于 SQL

    Server以实现其所有功能的应用程序,小规模安装较为适合,问题出在大规模安装时,这种情

    况下性能有时会受到影响。

    在本学时里,我们将要学习许多用于 SQL Server的编程术语和结构。如果你以前从未编

    写过程序,其中一些程序结构似乎令人胆怯。但你完全不必担心,因为你所涉及到的数据库

    不是正式使用的成品系统,里面不含有任何真实的商业数据。

    21.2 批

    在SQL Server编程中,术语“批(batch)”将大量用到。可用两种情形定义批。第一种是批

    过程。批过程是从大型机时代遗留下来的产物。由于在商用高峰时段内处理器周期有限,只

    能对活动的系统做极小的改变。批就在非高峰期内运行完成剩余的变化,并把它们填充到各

    自的区域和系统中去。虽然在 SQL Server中这种过程仍称为批过程,但这并不是我们通常所

    指的批。

    另一种SQL Server中所提到的批是指工作单元。批是一组 SQL语句,它被应用程序同时发

    送给SQL Server执行。SQL Server从批中读取所有语句,并把它们编译成可执行的单元。该可

    执行单元就是执行计划。SQL Server然后就一次执行执行计划中的所有语句。

    SQL Server可有多种方法来处理批中发生的错误:

    如果批中有任何语句出现了语法错误, SQL Server都不会生成执行计划。因此,批中任

    何语句都无法运行。例如:错拼单词“ SELECT”造成的语法错误。

    大多数运行期间发生的错误,比如算术溢出,将使当前执行的语句终止并中断该语句之

    205第21学时 SQL Server编程

    后的运行。

    大多数CREATE语句不能在同一个批中混合使用。换句话说,在同一个批里,你不可以

    既运行CREATE TABLE语句,也运行其他CREATE语句。

    在同一个批中你不能运行一个 ALTER TABLE命令后接着引用增加到该表中的新列,这

    是因为SQL Server提前编译批并在该表中查找那些列。因为那些列还未生成,所以导致

    编译失败。

    如果你在同一个批中运行多个存储过程,SQL Server要求它们运行时使用EXECUTE语句。

    为了在SQL脚本中给批定界,SQL Server用到了关键字GO.用这个关键字时,我们要做

    的是把GO放在一系列语句之后,使它们能作为一个单独的批运行。例如在程序清单 21-1里,

    我们在一个批中先打开一个数据库;在另一个批中建了一个表;在第三个批中执行了

    INSERT、UPDATE、DELETE语句,最后一个批删除已建立的表。所有这些可以一次运行,

    SQL Server仅把这些语句分成不同部分。

    程序清单21-1 批语句范例

    批的另一个好处是它们可以把你的代码分成小段,即使前一个小段运行失败,其他的仍

    然可以继续。这使得我们能使用事务的概念。

    21.3 事务

    事务是SQL Server防止你的数据出现不一致状态的基础结构。我们已经学习过事务是如

    何工作的。在这一节中,我们将学习在 SQL Server开发环境下如何让事务为你工作。 SQL

    Server中事务有两种,它们是隐式事务和显式事物。

    21.3.1 隐式事务

    隐式事务是 SQL Server为你而做的事务。隐式事务又称自动提交事务。如果运行一条

    INSERT语句,SQL Server将把它包装到事务中,如果此 INSERT语句失败,SQL Server将回滚

    或取消这个事务。每条 SQL语句均被视为一个自身的事务。例如在程序清单 21-2中,有四条

    INSERT语句。第一、二、四条是有效的,第三条语句是无效的。因为它违反了该表中有关作

    者标识必须唯一的约束。当程序运行时,第一、二、四条语句执行成功并插入表中。第三条

    206 SQL Server 7 24学时教程

    语句失败并回滚。

    程序清单21-2 隐式事务

    在日常操作中,你可能依赖于隐式事务。在第三方应用程序中,这些应用程序的开发人

    员则可能使用显式事务。

    21.3.2 显式事务

    显示事务是一种由你自己指定的事务。这种事务允许你自己决定哪批工作必须成功完成,

    否则所有部分都不完成。为了给自己的事务定界,可以使用关键字 BEGIN TRANSACTION和

    ROLLBACK TRANSACTION或COMMIT TRANSACTION.

    BEGIN TRANSACTION—这个关键词用来通知 SQL Server一个事务就要开始了。

    BEGIN TRANSACTION后面发生的每一条SQL语句都是同一个事务中的一部分。

    ROLLBACK TRANSACTION—这个关键词用来通知SQL Server自BEGIN TRANSACTION

    后的所有工作都应取消,对数据库中任何数据的改变都被还原,任何已经创建或删除的对

    象被清除或恢复。

    COMMIT TRANSACTION—这个关键词用来通知SQL Server自BEGIN TRANSACTION

    后的全部工作都要完成并成为数据库的一个永久性部分。在同一个事务中,你不能同时

    使用ROLLBACK TRANSACTION和COMMIT TRANSACTION.

    你必须意识到,即使你的脚本中有错误,而你又让 SQL Server提交事务,该事务也将执

    行。如果你打算依赖于现实事务保证数据完整性,必须在脚本中建立错误检查机制。程序清

    单21-3中的代码显示了运用显式事务来回滚对 employees表的改动。

    程序清单21-3 显式事务

[1] [2] [3] 下一页

如果您有什么疑问,可以至论坛提出或者解答他人的疑问    返回页面顶部

·上一篇:
·下一篇:
·导航: 迷城学吧 · 数据库类教程 · MSSQL教程 · Sql2000基础教程
网友自拍|生活百味|历史图片|摄影世界|明星图片|体坛图库|美女图片|图片纪实|世界奇观
相关文章
advertisement
Photshop高手进阶

关于站点 - 广告服务 - 联系我们 - 版权隐私 - 免责声明 - 合作伙伴 - 程序支持 - 网站地图 - 申请链接 | 设为首页 | 本页加入收藏 返回顶部  
网站文本地图
  版权所有:迷城学吧 欢迎各种媒体转载我们的原创作品[转载请注明出处]
Copyright © 2005-2008 www.McXb.com online services. all rights reserved. 蜀ICP备05015578
Template designed by Monsi. Optimized for 1024x768 to Firefox and MS-IE6 7. Site powered by JoyON.
红盾Gov315
有一个迷样的城市
在每个人的内心深处
让我们探索发掘这古老的墓