<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_Neo的技术点滴</title><subtitle type="text"/><id>http://feed.cnblogs.com/blog/u/7296/rss</id><updated>2012-03-23T02:15:28Z</updated><author><name>Neo0820</name><uri>http://www.cnblogs.com/Bruce_H21/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Bruce_H21/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/7296/rss"/><entry><id>http://www.cnblogs.com/Bruce_H21/archive/2012/03/23/2413213.html</id><title type="text">SQL 附加无日志数据库</title><summary type="text">CREATE DATABASE 数据库名字ON (FILENAME = 'D:\SalesData\archdat1.mdf') FOR ATTACH_REBUILD_LOG ;GO</summary><published>2012-03-23T02:15:00Z</published><updated>2012-03-23T02:15:00Z</updated><author><name>Neo0820</name><uri>http://www.cnblogs.com/Bruce_H21/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Bruce_H21/archive/2012/03/23/2413213.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Bruce_H21/archive/2012/03/23/2413213.html"/><content type="html">CREATE DATABASE 数据库名字&lt;br /&gt;ON (FILENAME = 'D:\SalesData\archdat1.mdf') &lt;br /&gt;FOR ATTACH_REBUILD_LOG ;&lt;br /&gt;GO&lt;br /&gt;&lt;img src="http://www.cnblogs.com/Bruce_H21/aggbug/2413213.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Bruce_H21/archive/2012/03/23/2413213.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Bruce_H21/archive/2012/03/07/2383668.html</id><title type="text">如何使用SQL Server事件探查器 跟踪 触发器</title><summary type="text">创建跟踪时选择“显示所有事件”然后选择 storage procedure -&gt; SP:Starting 和 SP:StmtStarting 事件。启动跟踪即可。</summary><published>2012-03-07T07:51:00Z</published><updated>2012-03-07T07:51:00Z</updated><author><name>Neo0820</name><uri>http://www.cnblogs.com/Bruce_H21/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Bruce_H21/archive/2012/03/07/2383668.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Bruce_H21/archive/2012/03/07/2383668.html"/><content type="html">&lt;p&gt;创建跟踪时选择&amp;#8220;显示所有事件&amp;#8221;&lt;/p&gt;&lt;p&gt;然后选择 storage procedure -&amp;gt; SP:Starting 和 SP:StmtStarting 事件。启动跟踪即可。&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/bruce_h21/无标题.jpg" width="858" longdesc="" height="542" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Bruce_H21/aggbug/2383668.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Bruce_H21/archive/2012/03/07/2383668.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Bruce_H21/archive/2011/12/08/2280699.html</id><title type="text">一句判断字符串里面包含多少个你想要查找字符&amp;amp;&amp;amp;实现LastIndexOf的SQL</title><summary type="text">需求：想要查找文本'00232.021.0334.035'里面包含多少个“.”实现方式通过SQL变通实现如下：selectlen('00232.021.0334.035')-len(replace('00232.021.0334.035','.',''))实现LastIndexOfselectlen('00232.021.0334.035')-CHARINDEX('.',REVERSE('00232.021.0334.035'))+1</summary><published>2011-12-08T06:15:00Z</published><updated>2011-12-08T06:15:00Z</updated><author><name>Neo0820</name><uri>http://www.cnblogs.com/Bruce_H21/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Bruce_H21/archive/2011/12/08/2280699.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Bruce_H21/archive/2011/12/08/2280699.html"/><content type="html">&lt;p&gt;需求：&lt;/p&gt;&lt;p&gt;想要查找文本'00232.021.0334.035'里面包含多少个&amp;#8220;.&amp;#8221;&lt;/p&gt;&lt;p&gt;实现方式&lt;/p&gt;&lt;p&gt;通过SQL变通实现如下：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #0000ff"&gt;select&lt;/span&gt;&amp;nbsp;&lt;span style="color: #ff00ff"&gt;len&lt;/span&gt;(&lt;span style="color: #ff0000"&gt;'&lt;/span&gt;&lt;span style="color: #ff0000"&gt;00232.021.0334.035&lt;/span&gt;&lt;span style="color: #ff0000"&gt;'&lt;/span&gt;)&lt;span style="color: #808080"&gt;-&lt;/span&gt;&lt;span style="color: #ff00ff"&gt;len&lt;/span&gt;(&lt;span style="color: #ff00ff"&gt;replace&lt;/span&gt;(&lt;span style="color: #ff0000"&gt;'&lt;/span&gt;&lt;span style="color: #ff0000"&gt;00232.021.0334.035&lt;/span&gt;&lt;span style="color: #ff0000"&gt;'&lt;/span&gt;,&lt;span style="color: #ff0000"&gt;'&lt;/span&gt;&lt;span style="color: #ff0000"&gt;.&lt;/span&gt;&lt;span style="color: #ff0000"&gt;'&lt;/span&gt;,&lt;span style="color: #ff0000"&gt;''&lt;/span&gt;))&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;实现LastIndexOf&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #0000ff"&gt;select&lt;/span&gt;&amp;nbsp;len(&lt;span style="color: #ff0000"&gt;'&lt;/span&gt;&lt;span style="color: #ff0000"&gt;00232.021.0334.035&lt;/span&gt;&lt;span style="color: #ff0000"&gt;'&lt;/span&gt;)&amp;nbsp;-&amp;nbsp;CHARINDEX(&lt;span style="color: #800000"&gt;'&lt;/span&gt;&lt;span style="color: #800000"&gt;.&lt;/span&gt;&lt;span style="color: #800000"&gt;'&lt;/span&gt;,REVERSE(&lt;span style="color: #ff0000"&gt;'&lt;/span&gt;&lt;span style="color: #ff0000"&gt;00232.021.0334.035&lt;/span&gt;&lt;span style="color: #ff0000"&gt;'&lt;/span&gt;))+&lt;span style="color: #800080"&gt;1&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt; &lt;img src="http://www.cnblogs.com/Bruce_H21/aggbug/2280699.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Bruce_H21/archive/2011/12/08/2280699.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Bruce_H21/archive/2011/06/10/2077359.html</id><title type="text">进程查看两利器</title><summary type="text">process explorer看名字基本知道了。OpenedFilesView 能根据当前的进程追踪到进程文件路径和进程所打开文件的路径，这点在打开文件死锁很有用处。</summary><published>2011-06-10T02:24:00Z</published><updated>2011-06-10T02:24:00Z</updated><author><name>Neo0820</name><uri>http://www.cnblogs.com/Bruce_H21/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Bruce_H21/archive/2011/06/10/2077359.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Bruce_H21/archive/2011/06/10/2077359.html"/><content type="html">&lt;p&gt;process explorer&lt;/p&gt;&lt;p&gt;看名字基本知道了。&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/bruce_h21/捕获1.JPG" width="1041" height="504" /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;OpenedFilesView &lt;/p&gt;&lt;p&gt;能根据当前的进程追踪到进程文件路径和进程所打开文件的路径，这点在打开文件死锁很有用处。&lt;/p&gt;&lt;p&gt;&lt;img border="0" alt="" src="http://images.cnblogs.com/cnblogs_com/bruce_h21/捕获2.JPG" width="1173" height="152" /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Bruce_H21/aggbug/2077359.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Bruce_H21/archive/2011/06/10/2077359.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Bruce_H21/archive/2011/02/14/1954428.html</id><title type="text">获取应用程序路径的区别</title><summary type="text">代码 Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/--&gt;//输出：C:\Users\Administrator\Desktop\ResFinder\ResFinder\bin\Debug//stringfilepath=System.IO.Directory.GetCurrentDirectory();//输出：C:\Users\Administrator\Desktop\ResFinder\ResFinder\bin\Debug\//stringf</summary><published>2011-02-14T08:09:00Z</published><updated>2011-02-14T08:09:00Z</updated><author><name>Neo0820</name><uri>http://www.cnblogs.com/Bruce_H21/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Bruce_H21/archive/2011/02/14/1954428.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Bruce_H21/archive/2011/02/14/1954428.html"/><content type="html">&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;" onclick="cnblogs_code_show('7b47987f-7258-4e17-8b08-37cc70d4ffc6')"&gt;&lt;img style="display: none" id="code_img_opened_7b47987f-7258-4e17-8b08-37cc70d4ffc6" class="code_img_opened" onclick="cnblogs_code_hide('7b47987f-7258-4e17-8b08-37cc70d4ffc6',event)" src="http://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif"&gt; &lt;div id="cnblogs_code_open_7b47987f-7258-4e17-8b08-37cc70d4ffc6" class="cnblogs_code_hide"&gt;&lt;div&gt;&lt;!--&lt;br/&gt;&lt;br/&gt;Code highlighting produced by Actipro CodeHighlighter (freeware)&lt;br/&gt;http://www.CodeHighlighter.com/&lt;br/&gt;&lt;br/&gt;--&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;输出：C:\Users\Administrator\Desktop\ResFinder\ResFinder\bin\Debug&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;string&amp;nbsp;filepath&amp;nbsp;=&amp;nbsp;System.IO.Directory.GetCurrentDirectory();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;输出：C:\Users\Administrator\Desktop\ResFinder\ResFinder\bin\Debug\&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;string&amp;nbsp;filepath&amp;nbsp;=&amp;nbsp;AppDomain.CurrentDomain.BaseDirectory;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;输出：C:\Users\Administrator\Desktop\ResFinder\ResFinder\bin\Debug&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;string&amp;nbsp;filepath&amp;nbsp;=&amp;nbsp;Application.StartupPath;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;输出：C:\Users\Administrator\Desktop\ResFinder\ResFinder\bin\Debug\ResFinder.exe&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;string&amp;nbsp;filepath&amp;nbsp;=&amp;nbsp;Application.ExecutablePath;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color: #008000"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;输出：C:\Users\Administrator\Desktop\ResFinder\ResFinder\bin\Debug\&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #008000"&gt;//&lt;/span&gt;&lt;span style="color: #008000"&gt;string&amp;nbsp;filepath&amp;nbsp;=&amp;nbsp;AppDomain.CurrentDomain.SetupInformation.ApplicationBase;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/Bruce_H21/aggbug/1954428.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Bruce_H21/archive/2011/02/14/1954428.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Bruce_H21/archive/2010/12/27/1917785.html</id><title type="text">EXCEPT 和 INTERSECT快速比较SQL表异同</title><summary type="text">比较两个查询的结果，返回非重复值。EXCEPT 从左查询中返回右查询没有找到的所有非重复值。INTERSECT 返回 INTERSECT 操作数左右两边的两个查询都返回的所有非重复值。以下是将使用 EXCEPT 或 INTERSECT 的两个查询的结果集组合起来的基本规则： 所有查询中的列数和列的顺序必须相同。 数据类型必须兼容。 法如果 EXCEPT 或 INTERSECT 操作数左边和右边的查询返回的可比较列的数据类型是具有不同排序规则的字符数据类型，则根据排序规则优先级的规则执行所需的比较。如果无法执行此转换，Microsoft SQL Server 2005 Database Engi</summary><published>2010-12-27T03:26:00Z</published><updated>2010-12-27T03:26:00Z</updated><author><name>Neo0820</name><uri>http://www.cnblogs.com/Bruce_H21/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Bruce_H21/archive/2010/12/27/1917785.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Bruce_H21/archive/2010/12/27/1917785.html"/><content type="html">&lt;div id="mainBody"&gt;&lt;div id="allHistory" class="saveHistory" onsave="saveAll()" onload="loadAll()"&gt;&lt;/div&gt;&lt;font color="darkgray"&gt;&lt;/font&gt;&lt;p&gt;&lt;p&gt;比较两个查询的结果，返回非重复值。&lt;/p&gt;&lt;p&gt;EXCEPT 从左查询中返回右查询没有找到的所有非重复值。&lt;/p&gt;&lt;p&gt;INTERSECT 返回 INTERSECT 操作数左右两边的两个查询都返回的所有非重复值。&lt;/p&gt;&lt;p&gt;以下是将使用 EXCEPT 或 INTERSECT 的两个查询的结果集组合起来的基本规则： &lt;/p&gt;&lt;ul&gt;&lt;li&gt;所有查询中的列数和列的顺序必须相同。 &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;数据类型必须兼容。 &lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;span style="cursor: default" tabindex="0" onkeypress="ExpandCollapse_CheckKey(syntaxToggle)" onclick="ExpandCollapse(syntaxToggle)"&gt;法&lt;/span&gt;&lt;/p&gt;&lt;div id="syntaxSection" class="section"&gt;&lt;div id="syntaxCodeBlocks" class="code"&gt;&lt;span codelanguage="other"&gt;&lt;table cellspacing="0" cellpadding="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th align="left"&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;{ &amp;lt;query_specification&amp;gt; | ( &amp;lt;query_expression&amp;gt; ) } &lt;br/&gt;{ EXCEPT | INTERSECT }&lt;br/&gt;{ &amp;lt;query_specification&amp;gt; | ( &amp;lt;query_expression&amp;gt; ) }&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;div id="remarksSection" class="section" name="collapseableSection"&gt;&lt;content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5"&gt;&lt;p xmlns=""&gt;如果 EXCEPT 或 INTERSECT 操作数左边和右边的查询返回的可比较列的数据类型是具有不同排序规则的字符数据类型，则根据&lt;a href="http://www.cnblogs.com/Bruce_H21/admin/ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/tsqlref9/html/58c4e64b-5634-4c29-aa22-33193282dd27.htm"&gt;排序规则优先级&lt;/a&gt;的规则执行所需的比较。如果无法执行此转换，Microsoft SQL Server 2005 Database Engine&amp;nbsp;将返回错误。&lt;/p&gt;&lt;p xmlns=""&gt;通过比较行来确定非重复值时，两个 NULL 值被视为相等。&lt;/p&gt;&lt;p xmlns=""&gt;EXCEPT 或 INTERSECT 返回的结果集的列名与操作数左侧的查询返回的列名相同。&lt;/p&gt;&lt;p xmlns=""&gt;ORDER BY 子句中的列名或别名必须引用左侧查询返回的列名。&lt;/p&gt;&lt;p xmlns=""&gt;EXCEPT 或 INTERSECT 返回的结果集中的任何列的为空性与操作数左侧的查询返回的对应列的为空性相同。&lt;/p&gt;&lt;p xmlns=""&gt;如果 EXCEPT 或 INTERSECT 与表达式中的其他运算符一起使用，则在以下优先顺序的上下文中对其进行评估：&lt;/p&gt;&lt;ol xmlns=""&gt;&lt;li&gt;括号中的表达式&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;INTERSECT 操作数&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;基于在表达式中的位置从左到右求值的 EXCEPT 和 UNION&lt;br /&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p xmlns=""&gt;如果 EXCEPT 或 INTERSECT 用于比较两个以上的查询集，则数据类型转换是通过一次比较两个查询来确定的，并遵循前面提到的表达式求值规则。&lt;/p&gt;&lt;p xmlns=""&gt;EXCEPT 和 INTERSECT 不能在分布式分区视图定义、查询通知中使用，也不能与 COMPUTE 和 COMPUTE BY 子句一起使用。&lt;/p&gt;&lt;p xmlns=""&gt;EXCEPT 和 INTERSECT 可在分布式查询中使用，但只在本地服务器上执行，不会被推送到链接服务器。因此，在分布式查询中使用 EXCEPT 和 INTERSECT 可能会影响性能。&lt;/p&gt;&lt;p xmlns=""&gt;快速只进游标和静态游标与 EXCEPT 或 INTERSECT 运算一起使用时，在结果集中完全受支持。如果由键集驱动的游标或动态游标与 EXCEPT 或 INTERSECT 运算一起使用，则运算的结果集的游标转换为静态游标。 &lt;/p&gt;&lt;p xmlns=""&gt;使用 SQL Server Management Studio 中的图形显示计划功能显示 EXCEPT 运算时，该运算显示为 &lt;MSHelp:link tabindex="0" keywords="e91c4c95-9b20-4e0f-8cd8-555ee074e90e"&gt;left anti semi join&lt;/MSHelp:link&gt;，INTERSECT 运算显示为 &lt;MSHelp:link tabindex="0" keywords="e836d70c-ff12-43c4-9cff-453aecac08a0"&gt;left semi join&lt;/MSHelp:link&gt;。&lt;/p&gt;&lt;/content&gt;&lt;/div&gt;&lt;h1 class="heading"&gt;&lt;span style="cursor: default" tabindex="0" onkeypress="ExpandCollapse_CheckKey(sectionToggle0)" onclick="ExpandCollapse(sectionToggle0)"&gt;&lt;/span&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;h1 class="heading"&gt;&lt;span style="cursor: default" tabindex="0" onkeypress="ExpandCollapse_CheckKey(sectionToggle0)" onclick="ExpandCollapse(sectionToggle0)"&gt;&lt;/span&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;h1 class="heading"&gt;&lt;span style="cursor: default" tabindex="0" onkeypress="ExpandCollapse_CheckKey(sectionToggle0)" onclick="ExpandCollapse(sectionToggle0)"&gt;&lt;/span&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;div id="sectionSection0" class="section" name="collapseableSection"&gt;&lt;content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5"&gt;&lt;dl xmlns=""&gt;&lt;dt&gt;&lt;p&gt;&amp;lt;query_specification&amp;gt; | ( &amp;lt;query_expression&amp;gt; )&lt;/p&gt;&lt;dd&gt;&lt;p&gt;查询规范或查询表达式返回与来自另一个查询规范或查询表达式的数据相比较的数据。在 EXCEPT 或 INTERSECT 运算中，列的定义可以不同，但它们必须在隐式转换后进行比较。如果数据类型不同，则用于执行比较并返回结果的类型是基于&lt;a href="http://www.cnblogs.com/Bruce_H21/admin/ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/tsqlref9/html/f4c804ab-ed3f-43b1-a024-c9ac6944b66b.htm"&gt;数据类型优先级&lt;/a&gt;的规则确定的。 &lt;/p&gt;&lt;p&gt;如果类型相同，但精度、小数位数或长度不同，则根据用于合并表达式的相同规则来确定结果。有关详细信息，请参阅 &lt;a href="http://www.cnblogs.com/Bruce_H21/admin/ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/tsqlref9/html/fbc9ad2c-0d3b-4e98-8fdd-4d912328e40a.htm"&gt;精度、小数位数和长度 (Transact-SQL)&lt;/a&gt;。&lt;/p&gt;&lt;p&gt;查询规范或表达式不能返回 xml、text、ntext、image 或非二进制 CLR 用户定义类型列，因为这些数据类型不可比较。&lt;/p&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;dl xmlns=""&gt;&lt;dt&gt;&lt;p&gt;EXCEPT&lt;/p&gt;&lt;dd&gt;&lt;p&gt;从 EXCEPT 操作数左边的查询中返回右边的查询未返回的所有非重复值。&lt;/p&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;dl xmlns=""&gt;&lt;dt&gt;&lt;p&gt;INTERSECT&lt;/p&gt;&lt;dd&gt;&lt;p&gt;返回 INTERSECT 操作数左右两边的两个查询均返回的所有非重复值。&lt;/p&gt;&lt;/dd&gt;&lt;/dl&gt;&lt;/content&gt;&lt;/div&gt;&lt;h1 class="heading"&gt;&lt;span style="cursor: default" tabindex="0" onkeypress="ExpandCollapse_CheckKey(sectionToggle1)" onclick="ExpandCollapse(sectionToggle1)"&gt;&lt;/img&gt;&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;h1 class="heading"&gt;&lt;span style="cursor: default" tabindex="0" onkeypress="ExpandCollapse_CheckKey(sectionToggle1)" onclick="ExpandCollapse(sectionToggle1)"&gt;&lt;/span&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;h1 class="heading"&gt;&lt;span style="cursor: default" tabindex="0" onkeypress="ExpandCollapse_CheckKey(sectionToggle1)" onclick="ExpandCollapse(sectionToggle1)"&gt;&lt;/span&gt;&amp;nbsp;&lt;/strong&gt;&lt;/p&gt;&lt;h1 class="heading"&gt;&lt;span style="cursor: default" tabindex="0" onkeypress="ExpandCollapse_CheckKey(sectionToggle1)" onclick="ExpandCollapse(sectionToggle1)"&gt;示例&lt;/span&gt;&lt;/strong&gt;&lt;/p&gt;&lt;div id="sectionSection1" class="section" name="collapseableSection"&gt;&lt;content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5"&gt;&lt;/content&gt;&lt;sections xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5"&gt;&lt;h3 class="subHeading" xmlns=""&gt;A. 使用 EXCEPT&lt;/strong&gt;&lt;/p&gt;&lt;div class="subSection" xmlns=""&gt;&lt;content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5"&gt;&lt;p xmlns=""&gt;在示例中使用 TableA 和 TableB 中的数据。&lt;/p&gt;&lt;h3 class="subHeading" xmlns=""&gt;&lt;/strong&gt;&lt;/p&gt;&lt;table style="background-color: #cccccc" border="1" cellspacing="0" cellpadding="0" width="100%" xmlns=""&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;TableA (col1 int) &lt;/th&gt;&lt;th&gt;TableB (col1 int) &lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;NULL&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;NULL&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;NULL&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;1&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;NULL&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;3&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;1&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;4&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;2&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;4&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;2&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;2&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;3&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;4&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;4&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p xmlns=""&gt;以下查询从 &lt;code&gt;EXCEPT&lt;/code&gt; 操作数左侧的查询返回右侧查询没有找到的所有非重复值。&lt;/p&gt;&lt;div class="code" xmlns=""&gt;&lt;span codelanguage="other"&gt;&lt;table cellspacing="0" cellpadding="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th align="left"&gt;&lt;/th&gt;&lt;th align="right"&gt;&lt;span style="cursor: default" class="copyCode" onmouseover="ChangeCopyCodeIcon(this)" tabindex="0" onkeypress="CopyCode_CheckKey(this)" onmouseout="ChangeCopyCodeIcon(this)" onclick="CopyCode(this)"&gt;&lt;img class="copyCodeImage" name="ccImage" align="absMiddle" src="http://www.cnblogs.com/Bruce_H21/admin/ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/tsqlref9/local/copycode.gif"  alt="" /&gt;&lt;/img&gt;复制代码&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;SELECT * FROM TableA EXCEPT SELECT * FROM TableB;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;/div&gt;&lt;p xmlns=""&gt;下面是结果集：&amp;nbsp;&lt;/p&gt;&lt;div class="code" xmlns=""&gt;&lt;span codelanguage="other"&gt;&lt;table cellspacing="0" cellpadding="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th align="left"&gt;&lt;/th&gt;&lt;th align="right"&gt;&lt;span style="cursor: default" class="copyCode" onmouseover="ChangeCopyCodeIcon(this)" tabindex="0" onkeypress="CopyCode_CheckKey(this)" onmouseout="ChangeCopyCodeIcon(this)" onclick="CopyCode(this)"&gt;&lt;img class="copyCodeImage" name="ccImage" align="absMiddle" src="http://www.cnblogs.com/Bruce_H21/admin/ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/tsqlref9/local/copycode.gif"  alt="" /&gt;&lt;/img&gt;复制代码&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;Col1       &lt;br/&gt;----------- &lt;br/&gt;2&lt;br/&gt;&lt;br/&gt;(1 row(s) affected)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;/div&gt;&lt;/content&gt;&lt;/div&gt;&lt;h3 class="subHeading" xmlns=""&gt;B. 使用 INTERSECT&lt;/strong&gt;&lt;/p&gt;&lt;div class="subSection" xmlns=""&gt;&lt;content xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5"&gt;&lt;p xmlns=""&gt;在示例中使用 TableA 和 TableB 中的数据。&lt;/p&gt;&lt;h3 class="subHeading" xmlns=""&gt;&lt;/strong&gt;&lt;/p&gt;&lt;table style="background-color: #cccccc" border="1" cellspacing="0" cellpadding="0" width="100%" xmlns=""&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th&gt;TableA (col1 int) &lt;/th&gt;&lt;th&gt;TableB (col1 int) &lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;NULL&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;2&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;NULL&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;2&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;NULL&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;2&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;1&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;4&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;2&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;p&gt;4&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;2&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;2&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;3&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;4&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;p&gt;4&lt;/p&gt;&lt;/td&gt;&lt;td&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;p xmlns=""&gt;以下查询返回 &lt;code&gt;INTERSECT&lt;/code&gt; 操作数左右两侧的两个查询均返回的所有非重复值。&lt;/p&gt;&lt;div class="code" xmlns=""&gt;&lt;span codelanguage="other"&gt;&lt;table cellspacing="0" cellpadding="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th align="left"&gt;&lt;/th&gt;&lt;th align="right"&gt;&lt;span style="cursor: default" class="copyCode" onmouseover="ChangeCopyCodeIcon(this)" tabindex="0" onkeypress="CopyCode_CheckKey(this)" onmouseout="ChangeCopyCodeIcon(this)" onclick="CopyCode(this)"&gt;&lt;img class="copyCodeImage" name="ccImage" align="absMiddle" src="http://www.cnblogs.com/Bruce_H21/admin/ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/tsqlref9/local/copycode.gif"  alt="" /&gt;&lt;/img&gt;复制代码&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;SELECT * FROM TableA INTERSECT SELECT * FROM TableB;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;/div&gt;&lt;p xmlns=""&gt;下面是结果集：&amp;nbsp;&lt;/p&gt;&lt;div class="code" xmlns=""&gt;&lt;span codelanguage="other"&gt;&lt;table cellspacing="0" cellpadding="0" width="100%"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;th align="left"&gt;&lt;/th&gt;&lt;th align="right"&gt;&lt;span style="cursor: default" class="copyCode" onmouseover="ChangeCopyCodeIcon(this)" tabindex="0" onkeypress="CopyCode_CheckKey(this)" onmouseout="ChangeCopyCodeIcon(this)" onclick="CopyCode(this)"&gt;&lt;img class="copyCodeImage" name="ccImage" align="absMiddle" src="http://www.cnblogs.com/Bruce_H21/admin/ms-help://MS.SQLCC.v9/MS.SQLSVR.v9.zh-CHS/tsqlref9/local/copycode.gif"  alt="" /&gt;&lt;/img&gt;复制代码&lt;/span&gt;&lt;/th&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="2"&gt;Col1       &lt;br/&gt;----------- &lt;br/&gt;2&lt;br/&gt;4&lt;br/&gt;&lt;br/&gt;(2 row(s) affected)&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/span&gt;&lt;/div&gt;&lt;/content&gt;&lt;/div&gt;&lt;/sections&gt;&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/Bruce_H21/aggbug/1917785.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/Bruce_H21/archive/2010/12/27/1917785.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/Bruce_H21/archive/2010/03/31/1701548.html</id><title type="text">SQL SERVER 企业管理器 MMC 无法创建管理单元</title><summary type="text">MMC创建无法管理单元。到网上寻找了以后，解决方法如下： 1. [开始]--&gt;[运行] regedit 回车 2. 找到以下注册表子项：HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\80\Tools\ClientSetup 3. 右键单击 ClientSetup 注册表子项， [新建]--&gt;[字串值]。 4. 重命...</summary><published>2010-03-31T08:48:00Z</published><updated>2010-03-31T08:48:00Z</updated><author><name>Neo0820</name><uri>http://www.cnblogs.com/Bruce_H21/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Bruce_H21/archive/2010/03/31/1701548.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Bruce_H21/archive/2010/03/31/1701548.html"/><content type="text">MMC创建无法管理单元。到网上寻找了以后，解决方法如下： 1. [开始]--&gt;[运行] regedit 回车 2. 找到以下注册表子项：HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\80\Tools\ClientSetup 3. 右键单击 ClientSetup 注册表子项， [新建]--&gt;[字串值]。 4. 重命...</content></entry><entry><id>http://www.cnblogs.com/Bruce_H21/archive/2010/03/29/1699845.html</id><title type="text">用PowerDesigner逆向数据库工程时”Unable to list the table&amp;quot;错误的解决方法</title><summary type="text">这是由于数据库的版本兼容模式不正确引起的，需要利用 “SP_DBCMPTLEVEL”存储过程来正确设置数据库的版本兼容。知道原因后解决故障就很简单了，打开企业管理器，输入“EXEC SP_DBCMPTLEVEL 'PMS', '90'; GO ”并执行，执行成功后，重新逆向工程就可以了。 PS：SP_DBCMPTLEVEL 存储过程一共需要两个参加 ...</summary><published>2010-03-29T09:53:00Z</published><updated>2010-03-29T09:53:00Z</updated><author><name>Neo0820</name><uri>http://www.cnblogs.com/Bruce_H21/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Bruce_H21/archive/2010/03/29/1699845.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Bruce_H21/archive/2010/03/29/1699845.html"/><content type="text">这是由于数据库的版本兼容模式不正确引起的，需要利用 “SP_DBCMPTLEVEL”存储过程来正确设置数据库的版本兼容。知道原因后解决故障就很简单了，打开企业管理器，输入“EXEC SP_DBCMPTLEVEL 'PMS', '90'; GO ”并执行，执行成功后，重新逆向工程就可以了。 PS：SP_DBCMPTLEVEL 存储过程一共需要两个参加 ...</content></entry><entry><id>http://www.cnblogs.com/Bruce_H21/archive/2010/03/19/1689841.html</id><title type="text">js日期控件</title><summary type="text">纯js，多样式。可从按钮或从图片触发。/Files/Bruce_H21/js_DatePicker.rar</summary><published>2010-03-19T06:47:00Z</published><updated>2010-03-19T06:47:00Z</updated><author><name>Neo0820</name><uri>http://www.cnblogs.com/Bruce_H21/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Bruce_H21/archive/2010/03/19/1689841.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Bruce_H21/archive/2010/03/19/1689841.html"/><content type="text">纯js，多样式。可从按钮或从图片触发。/Files/Bruce_H21/js_DatePicker.rar</content></entry><entry><id>http://www.cnblogs.com/Bruce_H21/archive/2010/01/11/1644279.html</id><title type="text">[摘]Entity &amp;amp; Inheritance</title><summary type="text">繼承 (inheritance) 是物件技術的核心，就是這個特性提供了 OOP 絕大部份的特色。這東西被拿掉的話，OOP就沒這麼迷人了。繼然談到了 ORM，就不能不來看看 R(關聯式資料庫) 怎麼被對應到 O(物件)，同時還能處理好繼承關係。RDBMS 連基本的物件 (Object Base) 都不支援了，更別說物件導向 (Object Oriented) 了。因此要搞懂 ORM 及繼承的關係，就...</summary><published>2010-01-11T09:09:00Z</published><updated>2010-01-11T09:09:00Z</updated><author><name>Neo0820</name><uri>http://www.cnblogs.com/Bruce_H21/</uri></author><link rel="alternate" href="http://www.cnblogs.com/Bruce_H21/archive/2010/01/11/1644279.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/Bruce_H21/archive/2010/01/11/1644279.html"/><content type="text">繼承 (inheritance) 是物件技術的核心，就是這個特性提供了 OOP 絕大部份的特色。這東西被拿掉的話，OOP就沒這麼迷人了。繼然談到了 ORM，就不能不來看看 R(關聯式資料庫) 怎麼被對應到 O(物件)，同時還能處理好繼承關係。RDBMS 連基本的物件 (Object Base) 都不支援了，更別說物件導向 (Object Oriented) 了。因此要搞懂 ORM 及繼承的關係，就...</content></entry></feed>
