转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 数据库 >> Sql Server >> 正文
SQL Server 2005中的T-SQL         

SQL Server 2005中的T-SQL

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1024 更新时间:2007/11/14 13:12:27
简介

  将于12月份发布的SQL Server 2005目前正处于准备阶段,最近,我研究了一份对Edgewood Solutions客户进行的调查,调查中询问他们认为什么是微软的新发布的数据库中最有价值的特性。一个不分职位、行业、公司规模和从业时间的常见回答就是加强的T-SQL。这些发现可以作为以下有关Transact-SQL编程扩展的贴士的基础。

  错误处理:TRY 和CATCH

  将行转换为列:PIVOT 和UNPIVOT

  XML改进

  贴士1:用TRY和CATCH进行错误处理

  自带的错误处理是T-SQL经常被用来与其他语言进行比较的缺点。SQL Server 2005引入了TRY和CATCH,与其他许多数据库一样。通过使用这种许多开发人员和数据库管理员都熟悉的方式来进行错误处理将大大提高对SQL Server的信心。

  BEGIN TRY

  SELECT 1/0;

  END TRY

  BEGIN CATCH

  SELECT

  ERROR_NUMBER() AS ErrorNumber,

  ERROR_SEVERITY() AS ErrorSeverity,

  ERROR_STATE() AS ErrorState,

  ERROR_PROCEDURE() AS ErrorProcedure,

  ERROR_LINE() AS ErrorLine,

  ERROR_MESSAGE() AS ErrorMessage;

  END CATCH;

  通过PIVOT 和UNPIVOT将行转换为列

  一位在保健公司上班的开发人员每当她的报告用户想要将行转换为列的时候,抱怨不止。这并不是一次良好的会话。她不得不编写一些需要执行好多个CPU周期的复杂的代码来给用户提供他们想要的数据,对这些数据的要求是在正式报告需求基础之上产生的。这些痛苦的会话在SQL Server 2005引入PIVOT和UNPIVOT命令之前是常见的事。这两个命令可以在几乎不需要修改代码的情况下快速地将行转换为列或者由列转换为行。

  USE AdventureWorks;

  GO

  SELECT VendorID, [164] AS Emp1, [198] AS Emp2, [223] AS Emp3, [231] AS Emp4, [233] AS Emp5

  FROM

  (SELECT PurchaseOrderID, EmployeeID, VendorID

  FROM Purchasing.PurchaseOrderHeader) p

  PIVOT

  (

  COUNT (PurchaseOrderID)

  FOR EmployeeID IN

  ( [164], [198], [223], [231], [233] )

  ) AS pvt

  ORDER BY VendorID

  资源: 使用 PIVOT 和UNPIVOT, SQL Server 2005 在线书籍:ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.en/udb9/html/24ba54fc-98f7-4d35-8881-b5158aac1d66.htm

  改进的XML

  XML普遍应用在通过许多异构的环境进行数据传输和在许多微软的应用程序之间传输数据上;SQL Server 2005 XML特性改善了创建、存储、传输和查询XML数据的内在能力。现在可以在SQL Server中自然地完成如下:

  创建一个可以被表的某列引用的XML计划

  CREATE XML SCHEMA COLLECTION [ . ]sql_identifier AS Expression

  为一个表创建一个本地的数据类型,这个表在创建的时候具有指向XML计划集合的指针,同时这个表放在与基本表不同的数据页上,就像SQL Server 2000中的BLOB。

  CREATE TABLE Orders

  (OrderID int PRIMARY KEY NOT NULL,

  OrderDetailsID int NOT NULL,

  OrderDate datetime NOT NULL,

  …

  XMLOrder xml NOT NULL)

  为存储过程或者特别的事务创建一个变量作为XML数据类型

  DECLARE @OrdersSchema xml

  …

  CREATE XML SCHEMA COLLECTION OrdersSchema AS @OrdersSchema

  通过创建主要和第二索引来提高对XML数据访问的速度

  CREATE PRIMARY XML INDEX PXML_Orders_OrderID

  ON OrdersSchema.Orders (OrderID);

  GO

  CREATE XML INDEX SXML_Order_OrderDetailsID

  ON OrdersSchema.Orders (OrderDetailsID)

  USING XML INDEX PXML_Orders_OrderID FOR PATH ;

  GO

  通过一个简单的SELECT语句来查询XML数据,将XML作为结果集的一部分,与表中余下的字段一起返回。

  SELECT *

  FROM Orders

  WHERE OrderID = 123


[Access]sql随机抽取记录  [Access]ASP&SQL让select查询结果随机排序的实现方法
[聊天工具]企业邮件系统的利器----FoxMail Server  [系统软件]OPEN SERVER 5.0.5安装EXP300阵列柜
[系统软件]SQL语句性能优化--LECCO SQL Expert  [系统软件]关于Windows2000Server的灾难恢复
[常用软件][网络]下载服务革命性风暴Poco Server评测  [C语言系列]动态创建SQL Server数据库、表、存储过程等架构信…
[C语言系列]SQL Server到DB2连接服务器的实现  [C语言系列]SQL Server到SYBASE连接服务器的实现
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · Sql Server  · MySql
    · Access  · ORACLE
    · SyBase  · 其他
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台