《SQL Server 2008从入门到精通》读书笔记2:入门可以,精通差很多(黑体部分为新增内容)

这本书英文名是《SQL Server 2008 Step by Step》,英文名更准确,就是通过具体的操作步骤来学习SQL Server 2008。本周快看完了。总体评价很不错,通过精心设计的练习,可以了解SQL Server 2008的方方面面:设计、开发、管理、靠可用性、商业智能。
用这本书来入门还可以,想精通差的比较多。作者几处建议向深入了解SQL Server 2008的话,可以去看《Microsoft SQL Server 2008 Internals》(中译本叫《深入解析SQL Server 2008》)
本书翻译水平一般,看到一半,发现有几处不准确、不清楚的地方。在IT中文翻译书中我觉得可以得70分。看后半部分,觉得翻译水平在下降,当然可能跟后半部分涉及的知识面相对来说更生僻一些有关。基本看完全书后觉得可以给翻译打60分。有条件的话可以参考英文版一起看。看不懂中文的地方看看英文还是比较清楚的。最不应该的是在212页,没由来的冒出一个“Oracle”,跟上下文完全不沾边。
中文版说在http://www.wenyuan.com.cn/上可以找到书中的源代码,不过上这个网站后连这本书都找不到,源代码更是没影。后来上英文版的出版社网站上找到了,URL:http://examples.oreilly.com/9780735626041/ 。安装后发现有些表的结构与脚本不符,执行会报错。在Chapter24中有一个数据库的备份文件,用这个备份文件恢复一个数据库,结构是对的,脚本执行不再报表结构错误。
以下是几点读书笔记:
SQL Server 2005开始新增的排序函数Row_Number()已经用了几年了,看这本书才注意到还有三个跟它同类的函数Rank()、Dense_Rank()、NTILE()。Row_Number()排序遇到相同的值,不会产生并列排名,因此重复执行的话,排序可能不同,Rank()对重复值给予并列排名,比如两个第二名,但是后面跟着的是第四名。Sense_Rank()同样产生并列排名,但是两个并列第二后面跟着第三名。NTILE()可以将结果集拆分为差不多的几个部分。
照原书14章最后一个例子建了一个实例上的限制访问数量的触发器,之后数据库就连不上了。上网搜出了一个解决方法,要使用本书没提到的SQL Server 2005开始增加的DAC功能去删除这个触发器:http://blog.sqlauthority.com/2009/06/27/sql-server-fix-error-17892-logon-failed-for-login-due-to-trigger-execution-changed-database-context-to-master/
第20章按照书中给出的例子做备份后手工破坏数据库,然后用备份文件恢复,报错。我对这个问题不太关注,没继续深入。
我看书过程中发现的错误或者不准确的地方都做了标注,本书译者或者出版社愿意要的话可以与我联系。
Tags: 

延伸阅读

最新评论

发表评论