扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:赛迪网 Banda 来源:天新网 2008年3月22日
关键字: SQL Server SQL Mssql 数据库
在本页阅读全文(共2页)
SQL Server Mobile Edition
在SQL Server 2000 中出现的 SQL Server 2000 Windows CE 版现已是SQL Server Mobile 3.0版。在其中有很多和开发人员有关的新的关键特性:
1.你现在可以直接用SQL Server Management Studio 在桌面或设备上创建一个SQL Server Mobile 版数据库。你也可以直接从SQL Server Management Studio中操作这个数据库的模式,而无需考虑这个数据库是在桌面还是在移动设备上。你可以使用SQL Server Management Studio来对设备或桌面上的SQL Server Mobile 版数据库允许查询。你可以充分利用新的SQL Server Mobile 版的特性:一个GUI界面的XML showplan,就像本机SQL Server一样,可以使用查询暗示来覆盖SQL Server Mobile的查询优化器。这是第一次可以在设备上控制优化计划。
2.你现在可以对DTS对象编码来交换数据。
3.在SQL Server 2005中从SQLResult 集派生出新的SqlCeResult 集。这将使得SQL Server Mobile版有个真正可滚动的、可更新的光标。它也允许绑定到设备上的数据对象。
6.你可以通过更为主动的页回收策略来维护一个更小的数据库。
7.你可以使用SQL Server语法来共享参数查询代码。
语言增强
Transact-SQL 增强
Transact-SQL 一直以来就是SQL Server所有编程的基础。SQL Server 2005 Beta 2 提供了很多新的语言功能用以开发可伸缩的应用程序。这些增强包括错误处理、新的递归查询功能、对新的SQL Server数据库引擎功能的支持等。SQL Server 2005 Beta 2 中的 Transact-SQL 增强功能提高了您在编写查询时的表达能力,使您可以改善代码的性能,并且扩充了您的错误管理能力。Microsoft 在增强 Transact-SQL 方面不断付出的努力显示了T-SQL在 SQL Server 中具有的重要作用、T-SQL的威力以及对它的将来所怀有的坚定信念。
递归查询和通用表表达式
通用表表达式 (CTE) 是一个可以由定义语句引用的临时命名的结果集。在它们的简单形式中,您可以将 CTE 视为更类似于非持续性类型视图的派生表的改进版本。在查询的 FROM 子句中引用 CTE 的方式类似于引用派生表和视图的方式。只须定义 CTE 一次,即可在查询中多次引用它。在 CTE 的定义中,可以引用在同一批处理中定义的变量。您甚至可以在 INSERT、UPDATE、DELETE 和 CREATE VIEW 语句中以与使用视图类似的方式使用 CTE。但是,CTE 的真正威力在于它们的递归功能,即 CTE 可以包含对它们自身的引用。当您希望像引用表一样引用查询结果,但是不希望在数据库中创建持久性视图时,可以使用派生表。但是,派生表具有 CTE 中所不具有的限制:您无法只在查询中定义派生表一次然后多次使用它。相反,您必须在同一查询中定义多个派生表。但是,您可以定义 CTE 一次并在查询中多次使用它,而无须在数据库中持续保存它。
非递归 CTE 可以改善语句的表达能力。但是对于每一段使用非递归 CTE 的代码,您通常可以通过使用其他 Transact-SQL 结构(例如,派生表)来实现同一功能,只不过代码更长点。对于递归 CTE,情况则迥然不同。当 CTE 引用它本身时,它被视为递归的。递归的 CTE 是根据至少两个查询(或者,用递归查询的说法,为成员)构建的。一个是非递归查询,也称为锚定成员 (AM)。另一个是递归查询,也称为递归成员 (RM)。查询由 UNION ALL 运算符连接为一个单独的CTE。
PIVOT 和 UNPIVOT 操作符
SQL Server 2005 Beta 2 提供了两个新的关系运算符: PIVOT 和 UNPIVOT, 你可以在查询的FROM子句中使用它。它们对一个输入表值表达式执行某种操作,并且产生一个输出表作为结果。PIVOT 运算符将行旋转为列,并且可能同时执行聚合。它基于给定的枢轴列扩大输入表表达式,并生成一个带有与枢轴列中的每个唯一值相对应的列的输出表。
PIVOT 运算符可用来处理开放架构方案以及生成交叉分析报表。在开放架构方案中,您需要用事先不知道或因实体类型而异的属性集来维护实体。应用程序的用户动态定义这些属性。您将属性拆分到不同的行中,并且只为每个实体实例存储相关的属性,而不是在表中预定义很多列并存储很多空值。PIVOT 使您可以为开放架构和其他需要将行旋转为列的方案生成交叉分析报表,并且可能同时计算聚合并且以有用的形式呈现数据。
UNPIVOT 运算符执行与 PIVOT 运算符相反的操作;它将列旋转为行。它基于旋转列收缩输入表表达式。UNPIVOT 运算符使您可以规格化预先旋转的数据。
APPLY 操作符
通过 APPLY 运算符,SQL Server 2005 Beta 2 使您可以在相关子查询中引用表值函数。APPLY 关系运算符使您可以针对外部表表达式的每个行调用指定的表值函数一次。您可以在查询的 FROM 子句中指定 APPLY,其方式与使用 JOIN 关系运算符类似。APPLY 具有两种形式:CROSS APPLY 和 OUTER APPLY。
CROSS APPLY 为外部表表达式中的每个行调用表值函数。您可以引用外部表中的列作为该表值函数的参数。CROSS APPLY 从该表值函数的单个调用所返回的所有结果中返回统一的结果集。如果该表值函数对于给定的外部行返回空集,则不会在结果中返回该外部行。
OUTER APPLY 非常类似于 CROSS APPLY,但是它还从表值函数为其返回空集的外部表中返回行。空值作为与表值函数的列相对应的列值返回。
事务异常处理
以前版本的 SQL Server 要求在每个怀疑可能出错的语句之后包含错误处理代码,就象Microsoft Visual Basic 6.0那样。要将错误检查代码集中在一起,必须使用标签和 GOTO 语句。此外,诸如数据类型转换错误之类的错误会导致批处理终止;因此,无法用 Transact-SQL 捕获这些错误。SQL Server 2005 Beta 2 引入了一种简单而强大的异常处理机制:TRY...CATCH Transact-SQL 结构,就象Visual Basic .net and C#中那样。现在可以捕获和处理过去会导致语句、级、批、或事务处理终止的错误,前提是这些错误不会导致连接中断(通常是严重度为 21 及以上的错误,例如,表或数据库完整性可疑、硬件错误等等)。
为了实现错误处理,只需要把想执行的代码写入BEGIN TRY/END TRY 块中,接着把错误处理代码写入BEGIN CATCH /END CATCH 块中。注意一个 TRY 块必须要有一个对应的CATCH 块,否则,将会出现语法错误。
DDL 事件通知
SQL Server 2005 Beta 2 使您可以捕获 DDL 和系统事件,并且向 Service Broker 部署发送事件通知。和触发器地同步处理相反的是,事件通知是一种允许异步使用的事件传递机制。事件通知将 XML 数据发送给指定的 Service Broker 服务,而事件使用者异步使用该数据。事件使用者可以在Service Broker接受语句中使用的WAITFOR 子句扩展来等待新数据的到达。
Full Text 搜索增强
SQL Server 2005 支持强大的full-text应用程序。编目能力得以加强以提供对目录的更大的灵活性, 查询性能和可伸缩性也有了巨大的提升,新的管理工具也为full-text 实施提供更强的功能。
安全增强
SQL Server 2005 受益于微软公司提出的可信赖计算——微软公司旨在提高客户在安全性、私有性、可靠性和业务完整性领域体验的计划。作为微软公司在2002年1月在全公司范围内实施计划的一部分,微软随后引入了新的开发流程,使得开发的产品无论是在设计、默认设置还是在部署方面,安全性都得到充分的保证。SQL Server开发团队已经将这个新的流程带入到SQL Server下一代版本——SQL Server 2005的开发过程中了, 这使得SQL Server 2005 将成为有史以来最具安全性的SQL Server。
这些新特性和改进可分为以下三个范围:
1.控制用户访问。SQL Server 2005将提供对用户访问SQL Server更强大的控制能力,可以通过策略来限定用户的访问。
2.禁用服务和限制服务配置。管理员能够把对SQL Server的访问限定在管理员所指定的某个范围内和某个粒度等级上,这样,管理员就能轻松地管理着一个不违反权限最低原则的系统。由于在安装时默认将禁用某些不是必需的服务,那么,管理员将更多考虑的是决定哪个服务根据需求被启用而不是去找有哪些不必要的服务需要关闭。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。