【内容简介】
本书是Inside Microsoft SQL Server 2005系列四本著作中的一本。它详细介绍了T-SQL的内部构造,包含了非常全面的编程参考。它提供了使用Transact-SQL(T-SQL)的专家级指导,T-SQL是用于SQL Server的最常见的也是功能最强大的编程语言。该书由Itzik Ben-Gan权威执笔,重点关注语言特性以及它们如何被SQL Server引擎解释和处理。
通过本书,你将深入了解T-SQL的高级用法,包括触发器、用户自定义函数、异常处理等。该书解释并比较了SQL Server 2000和SQL Server 2005在数据库开发相关问题上的解决方案,深入讨论了SQL Server 2005中新增的T-SQL编程特性,包含了大量的代码示例、表示例和逻辑难题以帮助数据库开发人员和管理员理解复杂的逻辑并掌握T-SQL。
本书适合于专业数据库开发者、BI开发者、DBA和以SQL Server作为后台数据库的一般应用程序开发者,读者可以通过书中的最佳实践、高级技巧和代码示例来掌握这门复杂的编程语言,以切合实际的方案来解决复杂的实际问题。
【编辑推荐】
SQL Server 2005微软官方权威参考手册
是Inside Microsoft SQL Server 2005系列书中的第一本,SQL Server类的顶尖之作
全球公认SQL Server 2005经典著作,囊括大量鲜为人知的技术内幕,大师智慧、专家经验尽览无余。
本系列图书中文版得到了微软总部SQL Server组专家的高度重视,同时也得到了微软中国上海SQL Server全球技术支持中心的高度关注。
本书详细介绍了T-SQL的内部构造,包含了非常全面的编程参考。数据库开发人员和DBA可以通过书中的最佳实践、高级技巧和代码示例来掌握这门复杂的编程语言,以切合实际的方案来解决复杂的问题。本书涵盖了T-SQL程序设计的方方面面,如基于集合的编程技术、日期和时间相关的XML和CLR数据类型的使用、临时对象、T-SQL和CLR用户自定义函数、存储过程、触发器、事务和新的错误处理结构、应用并发模型支持并发用户、使用Service Broker来控制数据库应用程序中的异步处理等。
【作译者介绍】
本书提供作译者介绍
Itzik Ben-Gan是Solid Quality Learning的导师和创始人。从1999年开始,他一直是Microsoft SQL Server MVP(最有价值专家),并在全世界已经开展过无数次T-SQL查询、T-SQL优化和编程方面的培训。Itzik是Microsoft SQL Server方面几本著作的作者。他在SQL ServerMagazine和MSDN上发表了许多文章和白皮书。Itzik被邀请在许多会议上做报告,包括TechEd、DevWeek、世界各地的各种SQL用户组、PASS、SQL server Magazine Connections和Solid Quality Learning的会议。
从1992年开始,Itzik就一.. << 查看详细
【目录信息】
序
前言
致谢
引言
第1章 数据类型相关的问题,XML和CLR UDT
1.1 DATETIME数据类型
DATETIME的存储格式
时间处理
Datetime相关的查询问题
1.2 与字符相关的问题
模式匹配
区分大小写(Case-Sensitive)的筛选器
1.3 大型对象(Large Object,LOB)
MAX 说明符
BULK行集提供程序
1.4 隐式转换(Implicit Conversion)
标量表达式
筛选表达式
1.5 基于CLR的用户定义类型
<< 查看详细目录
【译者序】
想必很多人都听说过该书的上一版——《Microsoft SQL Server 2000技术内幕》,这是一本在SQL Server领域被公认的经典之作。随着SQL Server 2005的发布,该书的最新版也问世了,然而就像《SQL Server 2000技术内幕》的作者Kalen Delaney所说的,SQL Server 2005太庞大了,以至于一本书无法容纳这么多的内容。因此,《SQL Server 2005技术内幕》被分成4册单独出版,同时她邀请了Itzik负责其中的T-SQL部分:T-SQL查询和T-SQL程序设计。.
作为《Microsoft SQL Server 2005技术内幕:T-SQL程序设计》和《Microsoft SQL Server 2005技术内幕:T-SQL查询》这两本书的译者,我有幸先睹为快,作者深厚的技术功底令我折服,..
<< 查看译者序
【前言】
本书及前篇——Inside Microsoft SQL Server 2005: T-SQL Querying——介绍了SQL Server 2005中高级T-SQL查询、查询优化及编程相关的知识。它们是为那些需要在SQL Server 2000和SQL Server 2005中编写和优化代码的开发人员和DBA而设计的。为简单起见,我把这两本书简称为Inside T-SQL Programming和Inside T-SQL Querying。.
这两本书侧重于实践中的常见问题,并讨论了解决这些问题的方法。你会从中学到大量精湛的技巧,这些技巧会充实你的工具箱和编码技能,可以让你自然而然地开发出高效的解决方案。
这两本书将向你揭示基于集合(set-based)查询的强大威力,并解释为什么它比使用游标的过程化..
<< 查看前言
【序言】
在关系数据库中,以集合(set)的方式来处理大量记录才有效率,使得 SQL(Structure Query Language)语言无法被C#/Java/Visual Basic 等面向对象语言取代。而善用数据是信息系统成功的关键因素之一,现今大量交易、数据整合、商业智能的结构性需求大增,将使SQL显得更加重要。.
随着 Microsoft SQL Server 版本的演进,衍生自 ANSI SQL 的 T-SQL(Transact Structure Query Language)语言变得独立且功能强大,拥有众多用户,是解决各种数据问题的主流语言。在 SQL Server 的功能大量扩增并广泛进入企业各系统后,日益庞大的数据量让 T-SQL 发挥了重要的作用。
虽然讨论 T-SQL 的书很多,但因为 SQL Se..
<< 查看序言
【书摘】
序
上世纪90年代后期Microsoft SQL Server 7.0发布后不久,我向微软IT部门的一位资深开发人员询问她和她的团队使用SQL Server时所用的编程语言。“过去我们用C和Visual Basic写代码,但是现在我们只使用T-SQL进行开发。”这让我非常吃惊。那时我已经从事开发新版SQL Server的工作大概已经3年了,后来我才意识到一些非常大的项目也在使用T-SQL开发。此后,微软加大了对新版SQL Server 的投入,包括对T-SQL语言的重要改进。世界上的SQL Server 实例数量成倍增长,今天很多的开发人员、数据库管理员、数据分析师、测试人员以及架构师都选择T-SQL作为开发语言,在很多时候,这也是他们唯一使用的编程工具。
仔细观查T-SQL的结构你会发现有两种类型的语句,其中一类是选择、插入和更新数据库中的数据的语句,另一类是提供流控制、输出、变量声明和处理以及我们在大部分非数据库编程语言可以找到的其他功能。SELECT、INSERT、SEND和RECEIVE属于第一类,DECLARE、 BEGIN、 IF、ELSE、 WAITFOR和PRINT属于第二类。Itzik Ben-Gan根据两类语句之间的大概界线把T-SQL分到两本书——Inside Microsoft SQL Server 2005: T-SQL Quexying和Inside Microsoft SQL Server 2005: T-SQL Programming。
这两本书都不是一个完整的语言参考,也没有必要写这样一本书,因为你可以从微软网站http://www.microsoft.com/technet/prodtechnol/sql/2005/downloads/books.mspx下载语言参考。相反,Itzik Ben-Gan利用他丰富的T-SQL教学经验把非常复杂的主题包括在他的书中,还包含SQL Server 2005中新增的功能。让教师写书的另一个优势是他已经向他的学生讲解过无数个与这些主题相关的问题。Itzik Ben-Gan非常巧妙地利用这些经验呈现这些素材,就好像回答问题一样,同时书中还包含大量的示例和技巧。我最喜欢的技巧在第一章。它解释了如何使用一个小测试表确定对一个大表执行的ALTER TABLE语句会花费几秒还是几小时。这个重要的技巧会是一个真正的救生员(或是事业提高者)。但要注意,不要忘记使用一个非空的测试表!
本书中我最喜欢的示例是第4章动态SQL中的动态Pivot。SQL Server 2005引入了PIVOT 和UNPIVOT语句,但它们无法处理未知元素数量的旋转。这个限制倍受用户批评。Itzik Ben-Gan向你展示了如何在SQL Server 2005 中利用一个由3个语句组成的批处理(如果不算变量声明)实现动态pivoting。如果你使用的不是SQL Server的最新版本,你会在本书中找到SQL Server 2005之前版本的动态pivot的批处理方法。它使用了10条语句,通过比较这两个版本的动态pivot,你会发现SQL Server 2005的强大的编程能力。本书包括SQL Server 2005之前版本的代码段和命令方法,这使得本书对那些还没使用SQL Server 2005的开发人员来说也非常具有吸引力,他们可以直接使用2005之前版本的解决方案。
《Microsoft SQL Server 2005技术内幕:T-SQL程序设计》这本书包含了大量实用的代码示例,你可以很轻易地把它们应用到自己的工作中。本书的作者除了关注示例的正确性之外,还考虑到安全、性能及潜在的阻塞等因素。因此,本书所包含的大量示例的查询计划都经过检查并与其他计划作过比较。例如,在第9章中,你会发现关于如何使用动态管理视图(DMV)以检测阻塞的场景。DMV是SQL Server 2005中新引入的,它提供了关于服务器状态的信息,这些信息可以用于监视服务器实例的状态、诊断问题和调整性能。
SQL Server是一个复杂的产品,几乎任何问题都不止一种解决方法。Itzik Ben-Gan及合著者彻底地检查每个问题的多种选择并解释应该如何从中做出选择。有时一种方法通常更好些,但经常有利也有弊,这时作者会给出做出正确选择的标准。例如,在第1章你将学习在T-SQL中表示2006年2月12日时,为什么应该使用'20060212'而不是'02/12/06' 或 '12/02/06'。在第2章比较表变量和临时表。在第3章你将学习到如何使用游标,以及更为重要是,什么时候不应该使用游标。第4章描述了EXEC和sp_executesql之间的区别。在接下来的第5章中,你将学习什么时候应用使用公用表表达式(CTE),它是SQL Server 2005中新增的,可以代替创建视图。第7章介绍存储过程,解释了为什么对象名称应该限定架构。第8章阐明了出于性能考虑,什么时候应该把触发器中的inserted或deleted表中的内容转移到临时表中。在第11章你将学习什么时候使用Service Broker,以及什么时候使用MSMQ或BizTalk更好。这份清单远未详尽,只是让你品味一下本书的内容。