<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>张文杰的博客 &#187; Microsoft</title>
	<atom:link href="http://zhangwenjie.net/archives/tag/microsoft/feed" rel="self" type="application/rss+xml" />
	<link>http://zhangwenjie.net</link>
	<description>技术、生活博客</description>
	<lastBuildDate>Mon, 24 Oct 2011 14:23:44 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com"/><atom:link rel="hub" href="http://superfeedr.com/hubbub"/>		<item>
		<title>Google让你的电灯告诉你它正在使用多少能源</title>
		<link>http://zhangwenjie.net/archives/302</link>
		<comments>http://zhangwenjie.net/archives/302#comments</comments>
		<pubDate>Thu, 04 Mar 2010 13:34:15 +0000</pubDate>
		<dc:creator>zhangwenjie</dc:creator>
				<category><![CDATA[互联网]]></category>
		<category><![CDATA[eSolar]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Google PowerMeter]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[PowerMeter API]]></category>

		<guid isPermaLink="false">http://zhangwenjie.net/?p=302</guid>
		<description><![CDATA[Google PowerMeter 是由一系列的大、 小型公司，包括 Green Goose 和 Microsoft，努力推出更好和更智能家庭能源监视服务的一部分。 今天，Google做了进一步的努力，它 通过 发布 一个 PowerMeter API，允许设备制造商创建 PowerMeter 兼容的设备，这使PowerMeter 成了无所不在的服务。]]></description>
			<content:encoded><![CDATA[<p>　　　<img class="alignleft" title="Google PowerMeter" src="http://www.readwriteweb.com/images/powermeter_logo_mar09.jpg" alt="Google PowerMeter is " width="120" height="184" /><a href="http://www.microsofttranslator.com/BV.aspx?ref=BVNav&amp;a=http%3A%2F%2Fwww.google.com%2Fpowermeter" target="_top">Google PowerMeter</a> 是由一系列的大、 小型公司，包括 <a href="http://www.readwriteweb.com/archives/green_goose_save_money_using_sensors.php">Green Goose</a> 和 <a href="http://www.microsofttranslator.com/BV.aspx?ref=BVNav&amp;a=http%3A%2F%2Fwww.microsoft-hohm.com%2F" target="_top">Microsoft</a>，努力推出更好和更智能家庭能源监视服务的一部分。 今天，Google做了进一步的努力，它 通过 <a href="http://www.microsofttranslator.com/BV.aspx?ref=BVNav&amp;a=http%3A%2F%2Fgooglecode.blogspot.com%2F2010%2F03%2Fgoogle-powermeter-api-introduced-for.html" target="_top">发布</a> <a href="http://www.microsofttranslator.com/BV.aspx?ref=BVNav&amp;a=http%3A%2F%2Fcode.google.com%2Fapis%2Fpowermeter%2F" target="_top">一个 PowerMeter API</a>，允许设备制造商创建 PowerMeter 兼容的设备，这使PowerMeter 成了无所不在的服务。 依据<a href="http://www.microsofttranslator.com/BV.aspx?ref=BVNav&amp;a=http%3A%2F%2Fblog.google.org%2F2010%2F03%2Fgoogle-powermeter-api-introduced-for.html" target="_top">Google</a>说法，这将允许硬件制造商集成” 室内/插头级能源监视设备到 Google PowerMeter”。 由于这一点，你可能很快就能在iGoogle 小工具的 PowerMeter上检查您的电灯或电视 正在使用多少能源。</p>
<p>　　值得注意的是这种努力是独立于谷歌的工作及公用事业机构而将PowerMeter 兼容数据提供给消费者的。 这个新的 PowerMeter API 是有关提供更为精确的每台设备或每个插头的功率消耗视图。 援引Google的意思，公司决定”为了帮助构建正努力使消费者获得更广泛能源信息的创新开发人员的生态系统”而发布此API。</p>
<p>　　<strong>现实世界中这是如何工作的</strong>？</p>
<p>　　依据Google 的开发人员指南，购买 PowerMeter 兼容设备的用户使用设备内置的 HTML 服务器（每个PowerMeter设备必须有一个）进行配置并将其激活此设备。 在连接该设备到 PowerMeter 帐户后，设备将每隔 10 分钟 通过安全的 HTTPS 连接 ping Google并上传数据。</p>
<p>　　<strong>Google 与能源</strong></p>
<p><strong>　　</strong>Google 显然最近对能源业务很感兴趣。 刚在上月该公司获得 <a href="http://www.microsofttranslator.com/BV.aspx?ref=BVNav&amp;a=http%3A%2F%2Fwww.readwriteweb.com%2Farchives%2Fferc_gives_google_the_right_to_buy_and_sell_energy.php" target="_top">法规批准</a> 买散装的能源。 Google 也使用太阳能电池板权为它的 Mountain View、CA 总部提供能源，并投资了大量的绿色能源项目和公司，包括 eSolar，这是一家计划在世界各地开发许多大型太阳能项目的公司。</p>
<p>　　</p>
<p>　　原创文章如转载，请注明：转载自<a title="张文杰的博客" href="http://zhangwenjie.net/">张文杰的博客</a> [ <a title="张文杰的博客" href="http://zhangwenjie.net/">http://zhangwenjie.net</a> ]</p>
<p>　　本文链接地址：<a href="http://zhangwenjie.net/archives/302.html">http://zhangwenjie.net/archives/302.html</a></p>
]]></content:encoded>
			<wfw:commentRss>http://zhangwenjie.net/archives/302/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows7成微软史上销售最快的系统</title>
		<link>http://zhangwenjie.net/archives/256</link>
		<comments>http://zhangwenjie.net/archives/256#comments</comments>
		<pubDate>Sat, 30 Jan 2010 12:44:15 +0000</pubDate>
		<dc:creator>zhangwenjie</dc:creator>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[windows7]]></category>
		<category><![CDATA[微软]]></category>

		<guid isPermaLink="false">http://zhangwenjie.net/?p=256</guid>
		<description><![CDATA[Windows7成微软史上销售最快的系统...]]></description>
			<content:encoded><![CDATA[<p>　　<strong>Windows7成微软史上销售最快的系统 盈利大幅增长</strong>。</p>
<p>　　<a href="http://www.microsoft.com/" target="_blank">微软</a>公布了2010财年第二季度报告显示，截止2009年底微软经历了创纪录的一个季度，营收190.2亿美元，同比增长14%。这都要感谢Windows 7带来的销量刺激。本季度Windows 7副本共卖出6000万份，是微软有史以来销售的最快的产品。微软宣布，操作系统收入85.1 亿美元（增长43%），网络业务收入66.6亿美元（增长60%），每股收益0.74美元（增长57%）。</p>
<p>　　微软首席财务官Peter Klein说，Windows 7在增长中占了绝对主要的部分，这将使微软调高日后的收入增长预期。微软首席运营官Kevin Turner则表示“我们为消费者迅速接受Win7和商业上热情的适应Win7感到非常兴奋。”</p>
<p>　　截至12月31日的第二财季，微软的净利润为66.6亿美元，每股收益74美分，这一业绩分别较上年同期上涨60%和57%。</p>
<div>　　2009年10月22日，微软发布Windows7操作系统，之后，Windows7受到了消费者、企业和媒体的一致好评。2009年11月份，在上市大约两周的时间中，Windows7的市场份额成功地超越苹果“雪豹”操作系统的市场份额。</div>
<div>　　2009财年第二财季，微软的净利润为41.74亿美元，每股收益47美分。微软第二财季运营利润为85.13亿美元，上年同期为59.39亿美元。微软第二财季营收为190.2亿美元，较上年同期的166.29亿美元增长14%。微软第二财季业绩超过了市场预期。汤姆路透调查显示，市场分析师此前预计，微软第二财季每股收益为59美分，营收为178.4亿美元。</div>
<p>　　查看：<a href="http://www.microsoft.com/presspass/press/2010/jan10/01-28fy10q2earnings.mspx" target="_blank">微软FY2010Q2财报</a>。</p>
<p> 　　</p>
]]></content:encoded>
			<wfw:commentRss>http://zhangwenjie.net/archives/256/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>盘点09年微软十大事 Win7发布排第一</title>
		<link>http://zhangwenjie.net/archives/152</link>
		<comments>http://zhangwenjie.net/archives/152#comments</comments>
		<pubDate>Thu, 10 Dec 2009 05:01:08 +0000</pubDate>
		<dc:creator>zhangwenjie</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[互联网]]></category>
		<category><![CDATA[Bing]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Office 2010]]></category>
		<category><![CDATA[Windows 7]]></category>
		<category><![CDATA[微软]]></category>

		<guid isPermaLink="false">http://zhangwenjie.net/?p=152</guid>
		<description><![CDATA[　　作为全球瞩目的头号IT公司，微软在即将过去的2009年中，即有喜又有忧，其中新版搜索引擎必应（Bing）和新一代windows7操作系统的成功推出让许多人再次肯定了其强大的实力，但是微软在今年也遭到了一定的打击，如首次大规模裁员，Windows Mobile不尽如人意遭到竞争对手打压等。总之，套用一句古话“月有阴晴圆缺”，想要事事圆满还真难实现。       下面就让我们一起来盘点一下2009年对于微软来说的十大事件：     1. 微软新一代Windows 7操作系统正式上市     2. 微软发布新版搜索引擎必应(Bing)     3. 微软1月宣布首次大规模裁员     4. 微软进军虚拟化，推出Hyper-V Server 2008 R2     5. Windows Mobile智能手机平台遭遇挑战     6. 微软正式开设专卖店并还将不断扩张     7. 微软公布Windows Azure详细计划     8. 微软启动“Laptop Hunters”广告回击苹果     9. 微软继续支持上网本，不担心影响公司营收     10. 微软更新合作伙伴网络(Partner Network)程序     　目前微软Office 2010正在紧密锣鼓的测试中，已经体验过Office 2010的用户应该已经能够感受到其中的部分改变了，其丰富的功能、美观的界面、强大的协作性待正式发布之时将会给大家带来有一个惊喜。]]></description>
			<content:encoded><![CDATA[<p>　　作为全球瞩目的头号IT公司，微软在即将过去的2009年中，即有喜又有忧，其中新版搜索引擎必应（Bing）和新一代<a href="http://win7.pcpop.com/" target="_blank">windows7</a>操作系统的成功推出让许多人再次肯定了其强大的实力，但是微软在今年也遭到了一定的打击，如首次大规模裁员，Windows Mobile不尽如人意遭到竞争对手打压等。总之，套用一句古话“月有阴晴圆缺”，想要事事圆满还真难实现。</p>
<p align="center"><a href="http://www.pcpop.com/doc/pic/001318006.html" target="_blank"><img style="BORDER-TOP-WIDTH: 1px; BORDER-LEFT-WIDTH: 1px; BORDER-LEFT-COLOR: black; BORDER-BOTTOM-WIDTH: 1px; BORDER-BOTTOM-COLOR: black; BORDER-TOP-COLOR: black; BORDER-RIGHT-WIDTH: 1px; BORDER-RIGHT-COLOR: black" src="http://img5.pcpop.com/ArticleImages/500x375/1/1318/001318006.jpg" border="1" alt="" /></a></p>
<p><script type="text/javascript"></script></p>
<p> </p>
<p>    下面就让我们一起来盘点一下2009年对于微软来说的十大事件：</p>
<p>    1. 微软新一代Windows 7操作系统正式上市</p>
<p>    2. 微软发布新版搜索引擎必应(Bing)</p>
<p>    3. 微软1月宣布首次大规模裁员</p>
<p>    4. 微软进军虚拟化，推出Hyper-V Server 2008 R2</p>
<p>    5. Windows Mobile智能手机平台遭遇挑战</p>
<p>    6. 微软正式开设专卖店并还将不断扩张</p>
<p>    7. 微软公布Windows Azure详细计划</p>
<p>    8. 微软启动“Laptop Hunters”广告回击苹果</p>
<p>    9. 微软继续支持上网本，不担心影响公司营收</p>
<p>    10. 微软更新合作伙伴网络(Partner Network)程序</p>
<p>    　目前微软Office 2010正在紧密锣鼓的测试中，已经体验过Office 2010的用户应该已经能够感受到其中的部分改变了，其丰富的功能、美观的界面、强大的协作性待正式发布之时将会给大家带来有一个惊喜。</p>
]]></content:encoded>
			<wfw:commentRss>http://zhangwenjie.net/archives/152/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>必应2.0版超越google? 或用户搜索习惯有可能改变？</title>
		<link>http://zhangwenjie.net/archives/125</link>
		<comments>http://zhangwenjie.net/archives/125#comments</comments>
		<pubDate>Sat, 05 Dec 2009 02:56:42 +0000</pubDate>
		<dc:creator>zhangwenjie</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[互联网]]></category>
		<category><![CDATA[Bing]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[Silverlight]]></category>
		<category><![CDATA[微软]]></category>
		<category><![CDATA[必应]]></category>
		<category><![CDATA[搜索]]></category>
		<category><![CDATA[谷歌]]></category>

		<guid isPermaLink="false">http://zhangwenjie.net/?p=125</guid>
		<description><![CDATA[必应2.0版超越google? 或用户搜索习惯有可能改变？...]]></description>
			<content:encoded><![CDATA[<p>　　周三早晨微软演示了众多必应(Bing)2.0新功能，其中有些功能实际多年前就已被谷歌实现。但是其中某些功能也显示，微软在做了大量市场调查后，发现互联网用户的需求相比数年前已经发生变化，然后根据新用户需求推出了一些谷歌所缺失的功能。</p>
<p>　　消息人士称，微软官员演示了许多新的可视化搜索插件，以及新版必应移动搜索客户端和支持Silverlight的必应地图。另外他们还演示了“实体卡片(entity cards)”和“任务页面(task pages)”功能，微软试图凭借它们让必应有别于谷歌，并提高搜索结果相关性。</p>
<p>　　微软官员表示，必应最大的增长来自于18到24和25到34两个年龄段的用户，他们更看重视频、网上购物和图像搜索方面的体验。</p>
<p>　　以下是博客评论总结的必应领先谷歌的三大方面：</p>
<p>　　1、不要给我答案的链接，直接给我答案</p>
<p>　　早期的互联网是数学、科学和技术爱好者的地盘。如果他们碰到一个问题，更喜欢被告诉如何以及在哪儿可以找到答案。现在必应的目标用户更广泛，并非都是技术人员。</p>
<p>　　谷歌的使命，“组织全世界的信息”，听起来令人厌倦，而且有些可怕。虽然有人喜欢花30分钟在谷歌上搜索信息，但多数人并不喜欢这样，而必应则是为“多数人”提供的谷歌替代者。</p>
<p>　　微软今天的演示幻灯片中打出的广告语是：“必应是通向更准确决策的快车道。”无论必应是否能够更好或更快速的帮助用户做出决策，它毕竟做出了一个吸引人的承诺。</p>
<p>　　2、图片比文字更好</p>
<p>　　可视化搜索是必应团队特别喜欢演示的功能之一。他们并不试图让所有人都相信：必应的搜索结果前10个要比谷歌的更具相关性、更全面或更具时效性。相反，必应使用所有可能的机会把大量图片和视频在搜索结果页面上显示。</p>
<p>　　举例来说，今天在谷歌中搜索美国副总统拜登(Joe Biden)时，排名靠前的返回结果是关于他最近丑闻的最新报道，但是必应则不是返回新闻，而是显示了他在维基百科中的词条链接以及他的6张照片。早期的技术人员偏爱命令行界面和文字信息，但现在的网民更喜欢图片和视频。</p>
<p>　　3、我只关心是否能得到我想要的信息</p>
<p>　　很多搜索是在快速查阅天气、名人图片和统计值等信息。必应满足了这种市场调研得出的用户需求，为搜索频率较高的人物、地区和事物制作了所谓的“卡片”，在传统链接的上方显示相关的图片和简短介绍。必应工作人员表示，这些预先整理的答案测试效果要好于链接。</p>
<p>　　今年早些时候，雅虎搜索团队也曾作出过类似结论：只要信息准确性值得信赖，多数人喜欢在搜索结果上方看到一些经过整理的答案。</p>
<p>　　谷歌肯定也在研究用户想要的功能，但明显还在犹豫不决是否做出变化。谷歌并非一定要变得更像必应，但是不可否认的是，必应不可能单凭运气或宣传在短短几个月时间中获得全球搜索引擎流量的十分之一，而是准确的发现了用户的真正需求。</p>
]]></content:encoded>
			<wfw:commentRss>http://zhangwenjie.net/archives/125/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Microsoft SQL Server 2008中T-SQL对CTE的增强(续)</title>
		<link>http://zhangwenjie.net/archives/119</link>
		<comments>http://zhangwenjie.net/archives/119#comments</comments>
		<pubDate>Fri, 20 Nov 2009 13:39:36 +0000</pubDate>
		<dc:creator>zhangwenjie</dc:creator>
				<category><![CDATA[SQL Server]]></category>
		<category><![CDATA[CTE]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[SQL Server 2008]]></category>
		<category><![CDATA[T-SQL]]></category>

		<guid isPermaLink="false">http://zhangwenjie.net/?p=119</guid>
		<description><![CDATA[CTEs的真正强大之处在于对树状结构的数据上执行的分层(hierarchical)递归查询。实事上，除了符合ANSI SQL-92标准之外，这也是Microsoft构建CTEs的主要原因...]]></description>
			<content:encoded><![CDATA[<p>　　CTEs的真正强大之处在于对树状结构的数据上执行的分层(hierarchical)递归查询。实事上，除了符合ANSI SQL-92标准之外，这也是Microsoft构建CTEs的主要原因。一个递归CTE同至少两部分查询组成:首先，锚成员(anchor member)是一个非递归查询；第二个，递归成员(recursive member)是一个递归查询。在CTE定义的括号里(AS语句之后),查询定义为独立的或引用同一CTE。锚成员或递归成员由UNION ALL语句分开。锚成员只会被调用一次；递归成员会被重复调用，直到没有行被返回。下面是语法:</p>
<p>WITH SimpleRecursive(field names)<br />
AS<br />
(<br />
   &lt;Select Statement for the Anchor Member&gt;</p>
<p>   UNION ALL</p>
<p>   &lt;Select Statement for the Recursive Member&gt;<br />
)</p>
<p>SELECT * FROM SimpleRecursive</p>
<p>下面的代码将演示这些特性。下面的代码创建了一个employees表，表中有一个自引用到<span>EmployeeID的字段：<span>ReportsTo。我们将编写一个查询得到所有向Stephen (<span>EmployeeID=2</span><a name="who report"></a>)报告的员工及向Stephen下级报告的员工。</span></span></p>
<p><em> 测试表：</em></p>
<table border="1" cellspacing="0" cellpadding="5" width="*">
<tbody>
<tr>
<td>
<pre>CREATE TABLE EmployeeTree
 (EmployeeID int PRIMARY KEY,
  EmployeeName nvarchar(50),
  ReportsTo int)
GO

--insert some data, build a reporting tree
INSERT INTO EmployeeTree VALUES(1, 'Richard', NULL)
INSERT INTO EmployeeTree VALUES(2, 'Stephen', 1)
INSERT INTO EmployeeTree VALUES(3, 'Clemens', 2)
INSERT INTO EmployeeTree VALUES(4, 'Malek', 2)
INSERT INTO EmployeeTree VALUES(5, 'Goksin', 4)
INSERT INTO EmployeeTree VALUES(6, 'Kimberly', 1)
INSERT INTO EmployeeTree VALUES(7, 'Ramesh', 5)</pre>
</td>
</tr>
</tbody>
</table>
<p><em> 递归查询代码：</em></p>
<table border="1" cellspacing="0" cellpadding="5" width="*">
<tbody>
<tr>
<td>
<pre>WITH SimpleRecursive(EmployeeID, EmployeeName, ReportsTo)
AS
(
  SELECT EmployeeID, EmployeeName, ReportsTo
   FROM EmployeeTree WHERE EmployeeID = 2
  UNION ALL
  SELECT p.EmployeeID, p.EmployeeName, p.ReportsTo
   FROM EmployeeTree AS P
    INNER JOIN SimpleRecursive A ON A.EmployeeID = P.ReportsTo
)
SELECT sr.EmployeeName AS Employee, et.EmployeeName AS Boss
 FROM SimpleRecursive AS sr
  INNER JOIN EmployeeTree AS et ON sr.ReportsTo = et.EmployeeID</pre>
</td>
</tr>
</tbody>
</table>
<p>下面是查询结果：</p>
<pre>Employee    Boss
<span>----------- ------------</span>
Stephen     Richard
Clemens     Stephen
Malek       Stephen
Goksin      Malek
Ramesh      Goskin</pre>
<p>　　递归查询以EmployeeID = 2开始(SELECT之后的锚成员),此查询将获取相应的记录，然后由递归查询获取向Stephen报告的员工记录及相应记录的下级。(例如Goksin向Malek汇报, 以及 Malek 向Stephen汇报.)。然后每个子递归尝试获取上次递归找到的员工的下级。最后，递归将返回空记录，这将导致递归结束(这就是为什么没有Kimberly记录的原因)。如果将上述代码中的的锚成员改为<span><a name="EmployeeID"></a>EmployeeID = 1，查询将返回Kimberly记录。</span></p>
<p><span>　　从设计上讲，递归成员将一直查询下级员工(对本例来说)并无限持续下去。如果你怀疑递归过多并想限制递归调用的次数，你可以在CTE的外查询(见下例)中指定OPTION子句的<span>MAXRECURSION选项。如:OPTION(MAXRECURSION 25)</span></span></p>
<p><span><span>　　这个选项将促使SQL Server在递归深度超过指定限制时产生一个错误。缺省时，这个限制是100(就是在你忽略这个选项时)。如果你想彻底取消此选项的作用，你需要指定<span>MAXRECURSION为０。你可以通过指定<span>MAXRECURSION选项</span>用和上面一样的代码来取得最上两级员工：</span></span></span></p>
<p> </p>
<table border="1" cellspacing="0" cellpadding="5" width="*">
<tbody>
<tr>
<td>
<pre>WITH SimpleRecursive(EmployeeID, EmployeeName, ReportsTo)
AS
(
  SELECT EmployeeID, EmployeeName, ReportsTo
   FROM EmployeeTree WHERE EmployeeID = 2
  UNION ALL
  SELECT p.EmployeeID, p.EmployeeName, p.ReportsTo
   FROM EmployeeTree AS P
    INNER JOIN SimpleRecursive A ON A.EmployeeID = P.ReportsTo
)
SELECT sr.EmployeeName AS Employee, et.EmployeeName AS Boss
 FROM SimpleRecursive AS sr
  INNER JOIN EmployeeTree AS et ON sr.ReportsTo = et.EmployeeID
<span>OPTION(MAXRECURSION 2)</span></pre>
</td>
</tr>
</tbody>
</table>
<p>下面中结果:<br />
Employee Boss<br />
<span>&#8212;&#8212;&#8212;- &#8212;&#8212;&#8212;&#8212;</span><br />
Stephen Richard<br />
Clemens Stephen<br />
Malek Stephen<br />
Goksin Malek</p>
<p>　　你同时会看到如下的错误信息：</p>
<p>Msg 530, Level 16, State 1, Line 2<br />
The statement terminated. The maximum recursion 2 has been exhausted<br />
before statement completion.</p>
<p>　    为了避免这种错误，一种方法是用一个产生列(generated column)来跟踪当前的层级并在WHERE子句中使用这个产生列作为限制条件,而不使用<span>MAXRECURSION选项。下面是修改过的代码，它将返回和上述同样的数据，但不会产生错误信息：</span></p>
<p> </p>
<table border="1" cellspacing="0" cellpadding="5" width="*">
<tbody>
<tr>
<td>
<pre>WITH SimpleRecursive(EmployeeID, EmployeeName, ReportsTo, <span>SubLevel</span>)
AS
(
  SELECT EmployeeID, EmployeeName, ReportsTo, <span>0</span>
   FROM EmployeeTree WHERE EmployeeID = 2
  UNION ALL
  SELECT p.EmployeeID, p.EmployeeName, p.ReportsTo, <span>SubLevel + 1</span>
   FROM EmployeeTree AS P
    INNER JOIN SimpleRecursive A ON A.EmployeeID = P.ReportsTo
    <span>WHERE SubLevel &lt;= 2</span>
)
SELECT sr.EmployeeName AS Employee, et.EmployeeName AS Boss
 FROM SimpleRecursive sr
  INNER JOIN EmployeeTree AS et ON sr.ReportsTo = et.EmployeeID</pre>
</td>
</tr>
</tbody>
</table>
<p>　　另外，SQL Server 2008引入了一个<span>hierarchyid新数据类型，可以比我们刚才看到的递归代码实现更强大树形结构数据。等有机会我们再探讨。</span></p>
]]></content:encoded>
			<wfw:commentRss>http://zhangwenjie.net/archives/119/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

