﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>博客园-简单</title><link>http://www.cnblogs.com/drc/</link><description>专注数据库技术，设计、应用、SQL技巧、各种优化方案探讨。
</description><language>zh-cn</language><lastBuildDate>Fri, 05 Sep 2008 21:32:07 GMT</lastBuildDate><pubDate>Fri, 05 Sep 2008 21:32:07 GMT</pubDate><ttl>60</ttl><item><title>发现一个SQLSERVER数据库的编绎解析问题</title><link>http://www.cnblogs.com/drc/archive/2008/05/21/1204237.html</link><dc:creator>简单</dc:creator><author>简单</author><pubDate>Wed, 21 May 2008 09:48:00 GMT</pubDate><guid>http://www.cnblogs.com/drc/archive/2008/05/21/1204237.html</guid><wfw:comment>http://www.cnblogs.com/drc/comments/1204237.html</wfw:comment><comments>http://www.cnblogs.com/drc/archive/2008/05/21/1204237.html#Feedback</comments><slash:comments>4</slash:comments><wfw:commentRss>http://www.cnblogs.com/drc/comments/commentRss/1204237.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/drc/services/trackbacks/1204237.html</trackback:ping><description><![CDATA[<div>今天捧读SQLSERVER圣经联机帮助，设计SQL SERVER 2000复制时出现下面的问题，最后得出结论是SQL<font color="#ff0000">数据库引擎不能正确的解析或者说不是时候的解析。</font></div>
<div><font size="2"></font>&nbsp;</div>
<div>1. 创建复制表：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #008080">--</span><span style="color: #008080">在发布服务器上创建表sales：</span><span style="color: #008080"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">CREATE</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">TABLE</span><span style="color: #000000">&nbsp;sales&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />(sale_id&nbsp;</span><span style="color: #0000ff">INT</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">IDENTITY</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">,</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">)&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">NOT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">FOR</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">REPLICATION,<br />
</span><span style="color: #000000"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />sales_region&nbsp;</span><span style="color: #0000ff">VARCHAR</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">20</span><span style="color: #000000">),<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">CONSTRAINT</span><span style="color: #000000">&nbsp;id_pk&nbsp;</span><span style="color: #0000ff">PRIMARY</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">KEY</span><span style="color: #000000">&nbsp;(sale_id)<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />)<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #008080">--</span><span style="color: #008080">在订阅服务器上创建表sales：</span><span style="color: #008080"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">CREATE</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">TABLE</span><span style="color: #000000">&nbsp;sales&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />(sale_id&nbsp;</span><span style="color: #0000ff">INT</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">IDENTITY</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">100001</span><span style="color: #000000">,</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">)&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #808080">NOT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">FOR</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">REPLICATION</span><span style="color: #000000">,&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />sales_region&nbsp;</span><span style="color: #0000ff">VARCHAR</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">2</span><span style="color: #000000">),<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">CONSTRAINT</span><span style="color: #000000">&nbsp;id_pk&nbsp;</span><span style="color: #0000ff">PRIMARY</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">KEY</span><span style="color: #000000">&nbsp;(sale_id)<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />)<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span></div>
&nbsp;</div>
<div>2. 建立事务复制，不可更新的订阅，其它都采用默认设置，只改发布属性&#8220;名称冲突&#8221;为&#8220;删除现有表中与行筛选语句相匹配的数据&#8221;，以防删除手工建立的表及标识列规则。在服务器插入新数据或删除旧数据时都正确，但修改数据时出错：</div>
<div>A.错误消息：{CALL sp_MSupd_sales (NULL,'afg2342342',2,<strong>0x02</strong>)} <br />
上一次执行批处理的事务序列号和命令 ID 分别是 0x0000006100000082000500000000 和 1。</div>
<div>B.上一条命：无法更新标识列 'sale_id'。</div>
<div>C.错误详细信息：无法更新标识列 'sale_id'。<br />
(源: DEV1 (数据源); 错误代码: 8102)<br />
<br />
</div>
<div>3. 复制自动创建的订阅服务器的存储过程如下，我对错误处做了注释：</div>
<div><font size="2"></font>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">create</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">procedure</span><span style="color: #000000">&nbsp;"sp_MSupd_sales"&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;</span><span style="color: #008000">@c1</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,</span><span style="color: #008000">@c2</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">varchar</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">20</span><span style="color: #000000">),</span><span style="color: #008000">@pkc1</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />,</span><span style="color: #008000">@bitmap</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">binary</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">)<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">as</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">substring</span><span style="color: #000000">(</span><span style="color: #008000">@bitmap</span><span style="color: #000000">,</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">,</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">)&nbsp;</span><span style="color: #808080">&amp;</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #008080">--</span><span style="color: #008080">条件为否时，应执行ELSE语句块</span><span style="color: #008080"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">begin</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">update</span><span style="color: #000000">&nbsp;"sales"&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />"sale_id"&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">case</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">substring</span><span style="color: #000000">(</span><span style="color: #008000">@bitmap</span><span style="color: #000000">,</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">,</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">)&nbsp;</span><span style="color: #808080">&amp;</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">when</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">then</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@c1</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;"sale_id"&nbsp;</span><span style="color: #0000ff">end</span><span style="color: #000000">&nbsp;&nbsp;&nbsp;</span><span style="color: #008080">--</span><span style="color: #008080">其语法完全没有问题，存储过程已创建好，标识列是不能更新的，由于@bitmap=0x02，不应该执行该语句块，但是该语句既然分析正确而且不会执行，仍然还在在执行时进行解析，???</span><span style="color: #008080"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000">,"sales_region"&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">case</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">substring</span><span style="color: #000000">(</span><span style="color: #008000">@bitmap</span><span style="color: #000000">,</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">,</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">)&nbsp;</span><span style="color: #808080">&amp;</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">2</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">when</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">2</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">then</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@c2</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;"sales_region"&nbsp;</span><span style="color: #0000ff">end</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">where</span><span style="color: #000000">&nbsp;"sale_id"&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@pkc1</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #008000">@@rowcount</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #008000">@@microsoftversion</span><span style="color: #808080">&gt;</span><span style="font-weight: bold; color: #800000">0x07320000</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">exec</span><span style="color: #000000">&nbsp;sp_MSreplraiserror&nbsp;</span><span style="font-weight: bold; color: #800000">20598</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">end</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">begin</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">update</span><span style="color: #000000">&nbsp;"sales"&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />"sales_region"&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">case</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">substring</span><span style="color: #000000">(</span><span style="color: #008000">@bitmap</span><span style="color: #000000">,</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">,</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">)&nbsp;</span><span style="color: #808080">&amp;</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">2</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">when</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">2</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">then</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@c2</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;"sales_region"&nbsp;</span><span style="color: #0000ff">end</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">where</span><span style="color: #000000">&nbsp;"sale_id"&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@pkc1</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #008000">@@rowcount</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #008000">@@microsoftversion</span><span style="color: #808080">&gt;</span><span style="font-weight: bold; color: #800000">0x07320000</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;</span><span style="color: #0000ff">exec</span><span style="color: #000000">&nbsp;sp_MSreplraiserror&nbsp;</span><span style="font-weight: bold; color: #800000">20598</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">end</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">GO</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span></div>
&nbsp;</div>
<div>最后得出一个结论：不是复制组件的问题，问题出在<font color="#ff0000">数据库引擎不能正确的解析或者说不是时候的解析</font>，简单的试试下面的代码(先分析后执行)：</div>
<div><font size="2">
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #0000ff">CREATE</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">TABLE</span><span style="color: #000000">&nbsp;Test&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />(<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;ID&nbsp;</span><span style="color: #0000ff">INT</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">IDENTITY</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">,</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">)&nbsp;</span><span style="color: #808080">NOT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">FOR</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">REPLICATION</span><span style="color: #000000">,&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;Content&nbsp;</span><span style="color: #0000ff">VARCHAR</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">20</span><span style="color: #000000">),<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">CONSTRAINT</span><span style="color: #000000">&nbsp;id_pk&nbsp;</span><span style="color: #0000ff">PRIMARY</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">KEY</span><span style="color: #000000">&nbsp;(ID)<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />)<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />GO<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #808080">=</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">begin</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">It&nbsp;can&nbsp;not&nbsp;be.</span><span style="color: #ff0000">'</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">update</span><span style="color: #000000">&nbsp;Test&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;ID</span><span style="color: #808080">=</span><span style="color: #000000">ID,&nbsp;Content</span><span style="color: #808080">=</span><span style="color: #000000">Content&nbsp;&nbsp;&nbsp;&nbsp; --where 1=0<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">end</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">else</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">begin</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">Right.</span><span style="color: #ff0000">'</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">update</span><span style="color: #000000">&nbsp;Test&nbsp;</span><span style="color: #0000ff">set</span><span style="color: #000000">&nbsp;Content</span><span style="color: #808080">=</span><span style="color: #000000">Content<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">end</span></div>
</font></div>
<img src ="http://www.cnblogs.com/drc/aggbug/1204237.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42116/" target="_blank">[新闻]消息称MySQL创始人已向Sun提交辞呈</a>]]></description></item><item><title>解决ORA-04091行触发器中访问变异表的难题</title><link>http://www.cnblogs.com/drc/archive/2008/05/05/1183456.html</link><dc:creator>简单</dc:creator><author>简单</author><pubDate>Mon, 05 May 2008 07:26:00 GMT</pubDate><guid>http://www.cnblogs.com/drc/archive/2008/05/05/1183456.html</guid><wfw:comment>http://www.cnblogs.com/drc/comments/1183456.html</wfw:comment><comments>http://www.cnblogs.com/drc/archive/2008/05/05/1183456.html#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://www.cnblogs.com/drc/comments/commentRss/1183456.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/drc/services/trackbacks/1183456.html</trackback:ping><description><![CDATA[<p><font face="Verdana"><br />
核心思路就是：在第一次插入时保存值到包变量中，第二次插入时不再读取表本身，转而读取包变量，可以成功解决这类难题。<br />
<br />
在工作中，需要为各个BOM的每个ITEM依次自动编号，不同BOM的ITEM的SEQ_NUMBER列都要 按1.2.3&#8230;自动生成序号。<br />
第一次，我这样写，<br />
</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; padding-left: 4px; font-size: 13px; border-top: #cccccc 1px solid; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /><span style="color: #0000ff">CREATE</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">OR</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">REPLACE</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">TRIGGER</span><span style="color: #000000">&nbsp;TR_BOM_AUTONUMBER_SEQNUMBER<br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />BEFORE&nbsp;</span><span style="color: #0000ff">INSERT</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">ON</span><span style="color: #000000">&nbsp;BOM&nbsp;<br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />REFERENCING&nbsp;NEW&nbsp;</span><span style="color: #0000ff">AS</span><span style="color: #000000">&nbsp;NEW&nbsp;OLD&nbsp;</span><span style="color: #0000ff">AS</span><span style="color: #000000">&nbsp;OLD<br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">FOR</span><span style="color: #000000">&nbsp;EACH&nbsp;ROW<br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">DECLARE</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;tmpVar&nbsp;</span><span style="color: #0000ff">number</span><span style="color: #000000">;<br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">BEGIN</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;tmpVar&nbsp;:</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">;<br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">SELECT</span><span style="color: #000000">&nbsp;GREATEST(nvl(</span><span style="color: #ff00ff">Max</span><span style="color: #000000">(to_number(SEQ_NUMBER)),</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">),&nbsp;</span><span style="color: #ff00ff">Count</span><span style="color: #000000">(</span><span style="color: #808080">*</span><span style="color: #000000">))&nbsp;</span><span style="color: #808080">+</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">INTO</span><span style="color: #000000">&nbsp;tmpVar&nbsp;</span><span style="color: #0000ff">FROM</span><span style="color: #000000">&nbsp;BOM&nbsp;</span><span style="color: #0000ff">Where</span><span style="color: #000000">&nbsp;BOMID</span><span style="color: #808080">=</span><span style="color: #000000">:New.BOMID;<br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;:NEW.&nbsp;SEQ_NUMBER:</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;nvl(tmpVar,</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">);<br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">END</span><span style="color: #000000">&nbsp;TR_BOM_AUTONUMBER_SEQNUMBER;<br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /></span></div>
<p>由于Insert操作会修改表数据，所以Insert&#8230;Select插入多行数据时，会报ORA-04091: table string.string is mutating, trigger/function may not see it错误，原因在于插入第2条数据时表已修改不能再访问。<br />
<br />
查阅了很多文章，有提示在其中使用 PRAGMA AUTONOMOUS_TRANSACTION来保证每行插入动作为自治事务。但实际上，经过我的测试，虽然DML不会出错，但实际SEQ_NUMBER全部为1，没有达到依次自动编号的目的。<br />
<br />
经过多次试验后，我使用保存于包中的索引表保存各个BOM的最大SEQ_NUMBER，可以防止BOM之间及用户之间的并发冲突。<br />
<br />
<strong>核心思路就是：在第一次插入时保存值到包变量中，第二次插入时不再读取表本身，转而读取包变量，可以成功解决这类难题。</strong><br />
<br />
详细代码如下：</p>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; padding-left: 4px; font-size: 13px; border-top: #cccccc 1px solid; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /><span style="color: #0000ff">CREATE</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">OR</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">REPLACE</span><span style="color: #000000">&nbsp;PACKAGE&nbsp;BOM_AUTONUMBER<br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">IS</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />TYPE&nbsp;t_MAX_SEQNUMBER&nbsp;</span><span style="color: #0000ff">is</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">table</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">of</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">number</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">INDEX</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">BY</span><span style="color: #000000">&nbsp;PLS_INTEGER;<br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />v_MAX_SEQNUMBER&nbsp;t_MAX_SEQNUMBER;<br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">end</span><span style="color: #000000">&nbsp;BOM_AUTONUMBER;<br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /></span><span style="color: #808080">/</span><span style="color: #000000"><img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /></span></div>
<div style="border-right: #cccccc 1px solid; padding-right: 5px; padding-left: 4px; font-size: 13px; border-top: #cccccc 1px solid; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /><span style="color: #0000ff">CREATE</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">OR</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">REPLACE</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">TRIGGER</span><span style="color: #000000">&nbsp;TR_BOM_AUTONUMBER_SEQNUMBER<br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />BEFORE&nbsp;</span><span style="color: #0000ff">INSERT</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">ON</span><span style="color: #000000">&nbsp;BOM&nbsp;<br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />REFERENCING&nbsp;NEW&nbsp;</span><span style="color: #0000ff">AS</span><span style="color: #000000">&nbsp;NEW&nbsp;OLD&nbsp;</span><span style="color: #0000ff">AS</span><span style="color: #000000">&nbsp;OLD<br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">FOR</span><span style="color: #000000">&nbsp;EACH&nbsp;ROW<br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">DECLARE</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;vNumber&nbsp;</span><span style="color: #0000ff">number</span><span style="color: #000000">;<br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;vBOMID&nbsp;</span><span style="color: #0000ff">number</span><span style="color: #000000">;<br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">BEGIN</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;vNumber:</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">;<br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;vBOMID:</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;:New.BOMID;<br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">not</span><span style="color: #000000">&nbsp;BOM_AUTONUMBER.v_MAX_SEQNUMBER.</span><span style="color: #808080">EXISTS</span><span style="color: #000000">(vBOMID)&nbsp;</span><span style="color: #0000ff">then</span><span style="color: #000000"><br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">SELECT</span><span style="color: #000000">&nbsp;GREATEST(nvl(</span><span style="color: #ff00ff">Max</span><span style="color: #000000">(to_number(SEQ_NUMBER)),</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">),&nbsp;</span><span style="color: #ff00ff">Count</span><span style="color: #000000">(</span><span style="color: #808080">*</span><span style="color: #000000">))&nbsp;</span><span style="color: #0000ff">INTO</span><span style="color: #000000">&nbsp;vNumber&nbsp;</span><span style="color: #0000ff">FROM</span><span style="color: #000000">&nbsp;BOM&nbsp;</span><span style="color: #0000ff">Where</span><span style="color: #000000">&nbsp;ITEM&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;vBOMID;<br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BOM_AUTONUMBER.v_MAX_SEQNUMBER(vBOMID)&nbsp;:</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;nvl(vNumber,&nbsp;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">);<br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">end</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">if</span><span style="color: #000000">;<br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;&nbsp;BOM_AUTONUMBER.v_MAX_SEQNUMBER(vBOMID)&nbsp;:</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;BOM_AUTONUMBER.v_MAX_SEQNUMBER(vBOMID)&nbsp;</span><span style="color: #808080">+</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">;<br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" />&nbsp;&nbsp;&nbsp;:NEW.SEQ_NUMBER&nbsp;:</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;BOM_AUTONUMBER.v_MAX_SEQNUMBER(vBOMID);<br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /></span><span style="color: #0000ff">END</span><span style="color: #000000">&nbsp;TR_BOM_&nbsp;AUTONUMBER_SEQNUMBER;<br />
<img alt="" align="top" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" /></span><span style="color: #808080">/</span></div>
<br />
</font>
<img src ="http://www.cnblogs.com/drc/aggbug/1183456.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42115/" target="_blank">[新闻]谷歌Chrome浏览器即将更换LOGO颜色？</a>]]></description></item><item><title>发现MSSQL导入数据时标识列存在的问题，已解决！</title><link>http://www.cnblogs.com/drc/archive/2008/01/10/1033708.html</link><dc:creator>简单</dc:creator><author>简单</author><pubDate>Thu, 10 Jan 2008 07:12:00 GMT</pubDate><guid>http://www.cnblogs.com/drc/archive/2008/01/10/1033708.html</guid><wfw:comment>http://www.cnblogs.com/drc/comments/1033708.html</wfw:comment><comments>http://www.cnblogs.com/drc/archive/2008/01/10/1033708.html#Feedback</comments><slash:comments>9</slash:comments><wfw:commentRss>http://www.cnblogs.com/drc/comments/commentRss/1033708.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/drc/services/trackbacks/1033708.html</trackback:ping><description><![CDATA[<br />
(2008/1/11已更新，附上解决方案，可以自动修复标识列的编码规则）<br />
最近在合并异地SQL数据的时候，发现MSSQL的标识列在合并数据时，可以启用标识插入也可以不启用标识插入，两种方法都可能存在一些潜在的问题，最严重的是导入操作改变了目的表的标识列编号规则。<br />
<br />
场景：A地的A表，B地有B表，数据结构除了标误列的种子不一样外其它完全一样：<br />
A(ID <font style="background-color: #e9f0df" face="Verdana">IDENTITY (1, 2),&nbsp;Content varchar(50)) 生成奇数主键ID<br />
B(ID <font style="background-color: #e9f0df" face="Verdana">IDENTITY (2, 2),&nbsp;Content varchar(50)) 生成偶数主键ID</font></font><br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /><span style="color: #008080">--</span><span style="color: #008080">A地的A表</span><span style="color: #008080"><br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">CREATE</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">TABLE</span><span style="color: #000000">&nbsp;dbo.A<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;(<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;ID&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">NOT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">NULL</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">IDENTITY</span><span style="color: #000000">&nbsp;(</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">,&nbsp;</span><span style="font-weight: bold; color: #800000">2</span><span style="color: #000000">),<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;Content&nbsp;</span><span style="color: #0000ff">varchar</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">50</span><span style="color: #000000">)&nbsp;</span><span style="color: #808080">NOT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">NULL</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;)&nbsp;&nbsp;</span><span style="color: #0000ff">ON</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">[</span><span style="color: #ff0000">PRIMARY</span><span style="color: #ff0000">]</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">GO</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">ALTER</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">TABLE</span><span style="color: #000000">&nbsp;dbo.A&nbsp;</span><span style="color: #0000ff">ADD</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">CONSTRAINT</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;PK_A&nbsp;</span><span style="color: #0000ff">PRIMARY</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">KEY</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">CLUSTERED</span><span style="color: #000000">&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;(<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;ID<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;)&nbsp;</span><span style="color: #0000ff">ON</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">[</span><span style="color: #ff0000">PRIMARY</span><span style="color: #ff0000">]</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #008080">--</span><span style="color: #008080">在A表中插入两条数据：预先插入A表两条数据</span><span style="color: #008080"><br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">INSERT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">INTO</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">[</span><span style="color: #ff0000">dbo</span><span style="color: #ff0000">]</span><span style="color: #000000">.</span><span style="color: #ff0000">[</span><span style="color: #ff0000">A</span><span style="color: #ff0000">]</span><span style="color: #000000">&nbsp;(</span><span style="color: #ff0000">[</span><span style="color: #ff0000">Content</span><span style="color: #ff0000">]</span><span style="color: #000000">)&nbsp;</span><span style="color: #0000ff">VALUES</span><span style="color: #000000">&nbsp;(</span><span style="color: #ff0000">'</span><span style="color: #ff0000">A1</span><span style="color: #ff0000">'</span><span style="color: #000000">)&nbsp;</span><span style="color: #008080">--</span><span style="color: #008080">生成1,&nbsp;'A1'</span><span style="color: #008080"><br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">INSERT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">INTO</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">[</span><span style="color: #ff0000">dbo</span><span style="color: #ff0000">]</span><span style="color: #000000">.</span><span style="color: #ff0000">[</span><span style="color: #ff0000">A</span><span style="color: #ff0000">]</span><span style="color: #000000">&nbsp;(</span><span style="color: #ff0000">[</span><span style="color: #ff0000">Content</span><span style="color: #ff0000">]</span><span style="color: #000000">)&nbsp;</span><span style="color: #0000ff">VALUES</span><span style="color: #000000">&nbsp;(</span><span style="color: #ff0000">'</span><span style="color: #ff0000">A3</span><span style="color: #ff0000">'</span><span style="color: #000000">)&nbsp;</span><span style="color: #008080">--</span><span style="color: #008080">生成3,&nbsp;'A3'</span><span style="color: #008080"><br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #008080">--</span><span style="color: #008080">B地的B表</span><span style="color: #008080"><br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">CREATE</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">TABLE</span><span style="color: #000000">&nbsp;dbo.B<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;(<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;ID&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">NOT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">NULL</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">IDENTITY</span><span style="color: #000000">&nbsp;(</span><span style="font-weight: bold; color: #800000">2</span><span style="color: #000000">,&nbsp;</span><span style="font-weight: bold; color: #800000">2</span><span style="color: #000000">),<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;Content&nbsp;</span><span style="color: #0000ff">varchar</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">50</span><span style="color: #000000">)&nbsp;</span><span style="color: #808080">NOT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">NULL</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;)&nbsp;&nbsp;</span><span style="color: #0000ff">ON</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">[</span><span style="color: #ff0000">PRIMARY</span><span style="color: #ff0000">]</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">GO</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">ALTER</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">TABLE</span><span style="color: #000000">&nbsp;dbo.B&nbsp;</span><span style="color: #0000ff">ADD</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">CONSTRAINT</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;PK_B&nbsp;</span><span style="color: #0000ff">PRIMARY</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">KEY</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">CLUSTERED</span><span style="color: #000000">&nbsp;<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;(<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;ID<br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;)&nbsp;</span><span style="color: #0000ff">ON</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">[</span><span style="color: #ff0000">PRIMARY</span><span style="color: #ff0000">]</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /><br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #008080">--</span><span style="color: #008080">在B表中插入1条数据：预先插入B表1表数据</span><span style="color: #008080"><br />
<img alt="" src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">INSERT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">INTO</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">[</span><span style="color: #ff0000">dbo</span><span style="color: #ff0000">]</span><span style="color: #000000">.</span><span style="color: #ff0000">[</span><span style="color: #ff0000">B</span><span style="color: #ff0000">]</span><span style="color: #000000">&nbsp;(</span><span style="color: #ff0000">[</span><span style="color: #ff0000">Content</span><span style="color: #ff0000">]</span><span style="color: #000000">)&nbsp;</span><span style="color: #0000ff">VALUES</span><span style="color: #000000">&nbsp;(</span><span style="color: #ff0000">'</span><span style="color: #ff0000">B2</span><span style="color: #ff0000">'</span><span style="color: #000000">)&nbsp;</span><span style="color: #008080">--</span><span style="color: #008080">生成2,&nbsp;'B2'</span></div>
<br />
现在要将A表数据导入到B表，问题出现了：<br />
1. 不启用标识插入的问题：<br />
&nbsp;&nbsp;&nbsp;&nbsp;不启用标识，B表会增加两条数据<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;4,'A1'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;6,'A3'<br />
&nbsp;&nbsp;&nbsp;&nbsp;造成同一数据在两地数据库表中的不一致情况，以及无法判断或者找出哪些数据已合并，哪些数据已修改或已删除，哪些数据重复导入等等问题。<br />
2. 启用标识插入的问题：<br />
&nbsp;&nbsp;&nbsp;&nbsp;启用标识后，B表会增加两条数据<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;1,'A1'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;3,'A3'<br />
&nbsp;&nbsp;&nbsp;<span style="color: #000000">&nbsp;用户最不能接受的错误出现了，B表录入的新数据是<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<strong><u style="color: #ff0000">5</u></strong>, '从A表导入两条数据后录入B表的新数据1'<br />
&nbsp;&nbsp;&nbsp;&nbsp;<strong>&nbsp;&nbsp;&nbsp;&nbsp;<u style="color: #ff0000">7</u></strong>, '从A表导入两条数据后录入B表的新数据2'</span><span style="color: #ff0000"><span style="color: #ff0000"><br />
<strong>&nbsp;&nbsp;&nbsp;&nbsp;导入合并操作改变了B表的标识列编号规则</strong></span></span>。<br />
<br />
<br />
2008-1-11，今天终于搞定了，一个存储过程完成解决，自动修复标识列的编码规则。 <br />
<br />
上例中，调用dbo.sp_RepairIDENTITY 'B', 'ID' 即可，执行结果如下： <br />
当前最大值：3 <br />
标识种子：2 <br />
标识增量：2 <br />
当前标识值：3 <br />
需设新标识值：4 <br />
检查标识信息: 当前标识值 '3'，当前列值 '4'。 <br />
DBCC 执行完毕。如果 DBCC 输出了错误信息，请与系统管理员联系。 <br />
结果：已修复标识，当前标识值重设为4 <br />
<br />
代码如下： <br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #0000ff">CREATE</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">PROCEDURE</span><span style="color: #000000">&nbsp;dbo.sp_RepairIDENTITY&nbsp;<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" />(&nbsp;<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">@Tablename</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">nvarchar</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">255</span><span style="color: #000000">),&nbsp;</span><span style="color: #008080">--</span><span style="color: #008080">表名&nbsp;</span><span style="color: #008080"><br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">@RowID_Name</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">nvarchar</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">20</span><span style="color: #000000">)&nbsp;</span><span style="color: #008080">--</span><span style="color: #008080">标识列名&nbsp;</span><span style="color: #008080"><br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000">)&nbsp;<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">as</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">SET</span><span style="color: #000000">&nbsp;NOCOUNT&nbsp;</span><span style="color: #0000ff">ON</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008080">--</span><span style="color: #008080">Select&nbsp;@TableName=N'B',@RowID_Name=N'ID'&nbsp;</span><span style="color: #008080"><br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000"><br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008080">--</span><span style="color: #008080">获取最大标识值MaxID&nbsp;</span><span style="color: #008080"><br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">Declare</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@sql</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">nvarchar</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">4000</span><span style="color: #000000">),&nbsp;</span><span style="color: #008000">@MaxID</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">bigint</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">Set</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@sql</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;N</span><span style="color: #ff0000">'</span><span style="color: #ff0000">Select&nbsp;@MaxID&nbsp;=Max(</span><span style="color: #ff0000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">+</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@RowID_Name</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">+</span><span style="color: #000000">&nbsp;N</span><span style="color: #ff0000">'</span><span style="color: #ff0000">)&nbsp;from&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">+</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@TableName</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">Exec</span><span style="color: #000000">&nbsp;sp_Executesql&nbsp;</span><span style="color: #008000">@sql</span><span style="color: #000000">,&nbsp;N</span><span style="color: #ff0000">'</span><span style="color: #ff0000">@MaxID&nbsp;bigint&nbsp;output</span><span style="color: #ff0000">'</span><span style="color: #000000">,</span><span style="color: #008000">@MaxID</span><span style="color: #000000">&nbsp;output&nbsp;<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008080">--</span><span style="color: #008080">print&nbsp;@MaxID&nbsp;</span><span style="color: #008080"><br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000"><br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">Declare</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@IDENT_CURRENT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">bigint</span><span style="color: #000000">,&nbsp;</span><span style="color: #008000">@NewIDentity</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">bigint</span><span style="color: #000000">,&nbsp;</span><span style="color: #008000">@IDENT_SEED</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">,&nbsp;</span><span style="color: #008000">@IDENT_INCR</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">Select</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@IDENT_SEED</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">IDENT_SEED</span><span style="color: #000000">(</span><span style="color: #008000">@TableName</span><span style="color: #000000">),&nbsp;</span><span style="color: #008080">--</span><span style="color: #008080">标识种子&nbsp;</span><span style="color: #008080"><br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">@IDENT_INCR</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">IDENT_INCR</span><span style="color: #000000">(</span><span style="color: #008000">@TableName</span><span style="color: #000000">),&nbsp;</span><span style="color: #008080">--</span><span style="color: #008080">标识增量&nbsp;</span><span style="color: #008080"><br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">@IDENT_CURRENT</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;IDENT_CURRENT(</span><span style="color: #008000">@TableName</span><span style="color: #000000">),&nbsp;</span><span style="color: #008080">--</span><span style="color: #008080">当前标识值&nbsp;</span><span style="color: #008080"><br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008000">@NewIDentity</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@MaxID</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">-</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@MaxID</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">%</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">cast</span><span style="color: #000000">(</span><span style="color: #ff00ff">IDENT_SEED</span><span style="color: #000000">(</span><span style="color: #008000">@TableName</span><span style="color: #000000">)&nbsp;</span><span style="color: #0000ff">as</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">int</span><span style="color: #000000">)&nbsp;</span><span style="color: #808080">+</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">IDENT_INCR</span><span style="color: #000000">(</span><span style="color: #008000">@TableName</span><span style="color: #000000">)&nbsp;</span><span style="color: #008080">--</span><span style="color: #008080">需要设置的新标识值&nbsp;</span><span style="color: #008080"><br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #000000"><br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">Print</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">当前最大值：</span><span style="color: #ff0000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">+</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">Cast</span><span style="color: #000000">(</span><span style="color: #008000">@MaxID</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">as</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">nvarchar</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">20</span><span style="color: #000000">))&nbsp;<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">Print</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">标识种子：</span><span style="color: #ff0000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">+</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">Cast</span><span style="color: #000000">(</span><span style="color: #008000">@IDENT_SEED</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">as</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">nvarchar</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">20</span><span style="color: #000000">))&nbsp;<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">Print</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">标识增量：</span><span style="color: #ff0000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">+</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">Cast</span><span style="color: #000000">(</span><span style="color: #008000">@IDENT_INCR</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">as</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">nvarchar</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">20</span><span style="color: #000000">))&nbsp;<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">Print</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">当前标识值：</span><span style="color: #ff0000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">+</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">Cast</span><span style="color: #000000">(</span><span style="color: #008000">@IDENT_CURRENT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">as</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">nvarchar</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">20</span><span style="color: #000000">))&nbsp;<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">Print</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">需设新标识值：</span><span style="color: #ff0000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">+</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">Cast</span><span style="color: #000000">(</span><span style="color: #008000">@NewIDentity</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">as</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">nvarchar</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">20</span><span style="color: #000000">))&nbsp;<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #008080">--</span><span style="color: #008080">----关键代码：启用标识导入数据或手工执行过DBCC&nbsp;CHECKIDENT('table_name',RESEED&nbsp;new_reseed_value)就会造成编码规则改变，所以要修复编码规则&nbsp;</span><span style="color: #008080"><br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">if</span><span style="color: #000000">(</span><span style="color: #008000">@IDENT_CURRENT</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">&lt;</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@MaxID</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">or</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@IDENT_CURRENT</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">%</span><span style="color: #000000">&nbsp;</span><span style="color: #008000">@IDENT_SEED</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">&gt;</span><span style="font-weight: bold; color: #800000">0</span><span style="color: #000000">)&nbsp;<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">begin</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">DBCC</span><span style="color: #000000">&nbsp;CHECKIDENT&nbsp;(</span><span style="color: #008000">@TableName</span><span style="color: #000000">,&nbsp;RESEED,&nbsp;</span><span style="color: #008000">@NewIDentity</span><span style="color: #000000">)&nbsp;<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">print</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">结果：已修复标识，当前标识值重设为</span><span style="color: #ff0000">'</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">+</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">Cast</span><span style="color: #000000">(</span><span style="color: #008000">@NewIDentity</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">as</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">nvarchar</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">20</span><span style="color: #000000">))&nbsp;<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">end</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">else</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">begin</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">Print</span><span style="color: #000000">&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">结果：不需要重设标识列。</span><span style="color: #ff0000">'</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">end</span><span style="color: #000000">&nbsp;<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">SET</span><span style="color: #000000">&nbsp;NOCOUNT&nbsp;</span><span style="color: #0000ff">OFF</span><span style="color: #000000">&nbsp;</span></div>
<img src ="http://www.cnblogs.com/drc/aggbug/1033708.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42101/" target="_blank">[新闻]淘宝网合并阿里妈妈 专家称阿里巴巴或有新战略</a>]]></description></item><item><title>简单统计SQLSERVER用户数据表大小(包括记录总数和空间占用情况)</title><link>http://www.cnblogs.com/drc/archive/2007/11/29/977189.html</link><dc:creator>简单</dc:creator><author>简单</author><pubDate>Thu, 29 Nov 2007 09:13:00 GMT</pubDate><guid>http://www.cnblogs.com/drc/archive/2007/11/29/977189.html</guid><wfw:comment>http://www.cnblogs.com/drc/comments/977189.html</wfw:comment><comments>http://www.cnblogs.com/drc/archive/2007/11/29/977189.html#Feedback</comments><slash:comments>8</slash:comments><wfw:commentRss>http://www.cnblogs.com/drc/comments/commentRss/977189.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/drc/services/trackbacks/977189.html</trackback:ping><description><![CDATA[在SQLSERVER，简单的组合<font face="Courier New">sp_spaceused和<font face="Courier New">sp_MSforeachtable这两个存储过程，可以方便的统计出用户数据表的大小，<font face="Courier New">包括记录总数和空间占用情况，非常实用，在SqlServer2K和SqlServer2005中都测试通过。<br />
<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img id="Codehighlighter1_0_345_Open_Image" onclick="this.style.display='none'; Codehighlighter1_0_345_Open_Text.style.display='none'; Codehighlighter1_0_345_Closed_Image.style.display='inline'; Codehighlighter1_0_345_Closed_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockStart.gif" align="top"  alt="" /><img id="Codehighlighter1_0_345_Closed_Image" style="display: none" onclick="this.style.display='none'; Codehighlighter1_0_345_Closed_Text.style.display='none'; Codehighlighter1_0_345_Open_Image.style.display='inline'; Codehighlighter1_0_345_Open_Text.style.display='inline';" src="http://www.cnblogs.com/images/OutliningIndicators/ContractedBlock.gif" align="top"  alt="" /><span id="Codehighlighter1_0_345_Closed_Text" style="border-right: #808080 1px solid; border-top: #808080 1px solid; display: none; border-left: #808080 1px solid; border-bottom: #808080 1px solid; background-color: #ffffff">/**/</span><span id="Codehighlighter1_0_345_Open_Text"><span style="color: #008080">/*</span><span style="color: #008080"><br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />1.&nbsp;exec&nbsp;sp_spaceused&nbsp;'表名'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;（SQL统计数据，大量事务操作后可能不准）<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />2.&nbsp;exec&nbsp;sp_spaceused&nbsp;'表名',&nbsp;true&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(更新表的空间大小，准确的表空大小，但可能会花些统计时间）<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />3.&nbsp;exec&nbsp;sp_spaceused&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(数据库大小查询）<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />4.&nbsp;exec&nbsp;sp_MSforeachtable&nbsp;"exec&nbsp;sp_spaceused&nbsp;'?'"&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(所有用户表空间表小，SQL统计数据，，大量事务操作后可能不准）<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/InBlock.gif" align="top"  alt="" />5.&nbsp;exec&nbsp;sp_MSforeachtable&nbsp;"exec&nbsp;sp_spaceused&nbsp;'?',true"&nbsp;&nbsp;&nbsp;&nbsp;(所有用户表空间表小，大数据库慎用）<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/ExpandedBlockEnd.gif" align="top"  alt="" /></span><span style="color: #008080">*/</span></span><span style="color: #000000"><br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /><br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">create</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">table</span><span style="color: #000000">&nbsp;#t(name&nbsp;</span><span style="font-weight: bold; color: #000000">varchar</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">255</span><span style="color: #000000">),&nbsp;rows&nbsp;</span><span style="font-weight: bold; color: #000000">bigint</span><span style="color: #000000">,&nbsp;reserved&nbsp;</span><span style="font-weight: bold; color: #000000">varchar</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">20</span><span style="color: #000000">),&nbsp;data&nbsp;</span><span style="font-weight: bold; color: #000000">varchar</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">20</span><span style="color: #000000">),&nbsp;index_size&nbsp;</span><span style="font-weight: bold; color: #000000">varchar</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">20</span><span style="color: #000000">),&nbsp;unused&nbsp;</span><span style="font-weight: bold; color: #000000">varchar</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">20</span><span style="color: #000000">))<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">exec</span><span style="color: #000000">&nbsp;sp_MSforeachtable&nbsp;"</span><span style="color: #0000ff">insert</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">into</span><span style="color: #000000">&nbsp;#t&nbsp;</span><span style="color: #0000ff">exec</span><span style="color: #000000">&nbsp;sp_spaceused&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">?</span><span style="color: #ff0000">'</span><span style="color: #000000">"&nbsp;<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">select</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">*</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">from</span><span style="color: #000000">&nbsp;#t<br />
<img src="http://www.cnblogs.com/images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">drop</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">table</span><span style="color: #000000">&nbsp;#t</span></div>
</font></font></font><br />
另外还有<font face="Courier New">sp_MSforeachdb可以遍历所有数据库，使用方法详见SQL帮助。</font>
<img src ="http://www.cnblogs.com/drc/aggbug/977189.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42096/" target="_blank">[新闻]微软研究院发布 AutoCollage - 整理并融合照片</a>]]></description></item><item><title>简单的3个SQL视图搞定所有SqlServer数据库字典</title><link>http://www.cnblogs.com/drc/archive/2007/11/09/954123.html</link><dc:creator>简单</dc:creator><author>简单</author><pubDate>Fri, 09 Nov 2007 03:13:00 GMT</pubDate><guid>http://www.cnblogs.com/drc/archive/2007/11/09/954123.html</guid><wfw:comment>http://www.cnblogs.com/drc/comments/954123.html</wfw:comment><comments>http://www.cnblogs.com/drc/archive/2007/11/09/954123.html#Feedback</comments><slash:comments>31</slash:comments><wfw:commentRss>http://www.cnblogs.com/drc/comments/commentRss/954123.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/drc/services/trackbacks/954123.html</trackback:ping><description><![CDATA[摘要: <br>(2007-11-29更新）网上有很多SQL SERVER数据库字典的SQL语句，七零八落，我在工作整理了一下思路，总结SQL代码如下。数据库字典包括表结构(分2K和2005）、索引和主键.外键.约束.视图.函数.存储过程.触发器.规则。可以在企业管理器、查询分析器中简单执行，直接了当的查出SQL2K及SQL2005的所有数据字典，方便文档的编写，希望对大家有帮助。&nbsp;&nbsp;<a href='http://www.cnblogs.com/drc/archive/2007/11/09/954123.html'>阅读全文</a><img src ="http://www.cnblogs.com/drc/aggbug/954123.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42100/" target="_blank">[新闻]2008年9月5日科技博客精选</a>]]></description></item><item><title>一条语句简单解决“每个Y的最新X”的SQL经典问题</title><link>http://www.cnblogs.com/drc/archive/2007/10/23/934294.html</link><dc:creator>简单</dc:creator><author>简单</author><pubDate>Tue, 23 Oct 2007 04:18:00 GMT</pubDate><guid>http://www.cnblogs.com/drc/archive/2007/10/23/934294.html</guid><wfw:comment>http://www.cnblogs.com/drc/comments/934294.html</wfw:comment><comments>http://www.cnblogs.com/drc/archive/2007/10/23/934294.html#Feedback</comments><slash:comments>13</slash:comments><wfw:commentRss>http://www.cnblogs.com/drc/comments/commentRss/934294.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/drc/services/trackbacks/934294.html</trackback:ping><description><![CDATA[<br />
&#8220;每个Y的最新X&#8221;是一个经典的SQL问题，工作中经常碰到。当然不是&#8220;按Y分组求最新的X值&#8221;那么简单，要求最新X的那条记录或主键ID。用一条SQL语句可以简单的解决此问题。<br />
<br />
生成实例表和数据：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /><span style="color: #008080">--</span><span style="color: #008080">创建表</span><span style="color: #008080"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">CREATE</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">TABLE</span><span style="color: #000000">&nbsp;dbo.Tab<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;(<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;ID&nbsp;</span><span style="font-weight: bold; color: #000000">int</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">NOT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">NULL</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">IDENTITY</span><span style="color: #000000">&nbsp;(</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">,&nbsp;</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000">),<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;Y&nbsp;</span><span style="font-weight: bold; color: #000000">varchar</span><span style="color: #000000">(</span><span style="font-weight: bold; color: #800000">20</span><span style="color: #000000">)&nbsp;</span><span style="color: #808080">NOT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">NULL</span><span style="color: #000000">,<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;X&nbsp;</span><span style="font-weight: bold; color: #000000">datetime</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">NOT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">NULL</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" />&nbsp;&nbsp;&nbsp;&nbsp;)<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">GO</span><span style="color: #000000"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #008080">--</span><span style="color: #008080">插入数据</span><span style="color: #008080"><br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">INSERT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">INTO</span><span style="color: #000000">&nbsp;Tab(Y,&nbsp;X)&nbsp;</span><span style="color: #0000ff">values</span><span style="color: #000000">(</span><span style="color: #ff0000">'</span><span style="color: #ff0000">BBB</span><span style="color: #ff0000">'</span><span style="color: #000000">,&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">2007-10-23&nbsp;11:11:11</span><span style="color: #ff0000">'</span><span style="color: #000000">)<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">INSERT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">INTO</span><span style="color: #000000">&nbsp;Tab(Y,&nbsp;X)&nbsp;</span><span style="color: #0000ff">values</span><span style="color: #000000">(</span><span style="color: #ff0000">'BBB</span><span style="color: #ff0000">'</span><span style="color: #000000">,&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">2007-10-23&nbsp;11:11:11</span><span style="color: #ff0000">'</span><span style="color: #000000">)<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">INSERT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">INTO</span><span style="color: #000000">&nbsp;Tab(Y,&nbsp;X)&nbsp;</span><span style="color: #0000ff">values</span><span style="color: #000000">(</span><span style="color: #ff0000">'BBB</span><span style="color: #ff0000">'</span><span style="color: #000000">,&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">2007-10-23&nbsp;10:10:10</span><span style="color: #ff0000">'</span><span style="color: #000000">)<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">INSERT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">INTO</span><span style="color: #000000">&nbsp;Tab(Y,&nbsp;X)&nbsp;</span><span style="color: #0000ff">values</span><span style="color: #000000">(</span><span style="color: #ff0000">'AAA</span><span style="color: #ff0000">'</span><span style="color: #000000">,&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">2007-10-23&nbsp;12:12:12</span><span style="color: #ff0000">'</span><span style="color: #000000">)<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">INSERT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">INTO</span><span style="color: #000000">&nbsp;Tab(Y,&nbsp;X)&nbsp;</span><span style="color: #0000ff">values</span><span style="color: #000000">(</span><span style="color: #ff0000">'AAA</span><span style="color: #ff0000">'</span><span style="color: #000000">,&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">2007-10-23&nbsp;10:10:10</span><span style="color: #ff0000">'</span><span style="color: #000000">)<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">INSERT</span><span style="color: #000000">&nbsp;</span><span style="color: #0000ff">INTO</span><span style="color: #000000">&nbsp;Tab(Y,&nbsp;X)&nbsp;</span><span style="color: #0000ff">values</span><span style="color: #000000">(</span><span style="color: #ff0000">'AAA</span><span style="color: #ff0000">'</span><span style="color: #000000">,&nbsp;</span><span style="color: #ff0000">'</span><span style="color: #ff0000">2007-10-23&nbsp;11:11:11</span><span style="color: #ff0000">'</span><span style="color: #000000">)<br />
<img alt="" src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top" /></span><span style="color: #0000ff">GO</span></div>
<font face="Verdana"><br />
解决&#8220;每个Y的最新X&#8221;经典SQL问题</font>：<br />
<div style="border-right: #cccccc 1px solid; padding-right: 5px; border-top: #cccccc 1px solid; padding-left: 4px; font-size: 13px; padding-bottom: 4px; border-left: #cccccc 1px solid; width: 98%; word-break: break-all; padding-top: 4px; border-bottom: #cccccc 1px solid; background-color: #eeeeee"><img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /><span style="color: #008080">--一条SQL语句实现</span><br />
<span style="color: #0000ff">&nbsp;&nbsp;SELECT</span><span style="color: #000000">&nbsp;</span><span style="color: #000000">ID,&nbsp;Y,&nbsp;X<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">FROM</span><span style="color: #000000">&nbsp;Tab&nbsp;T<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" /></span><span style="color: #0000ff">WHERE</span><span style="color: #000000">&nbsp;(</span><span style="color: #808080">NOT</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">EXISTS</span><span style="color: #000000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(</span><span style="color: #0000ff">SELECT</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #800000">1</span><span style="color: #000000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">FROM</span><span style="color: #000000">&nbsp;Tab&nbsp;T2<br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000ff">WHERE</span><span style="color: #000000">&nbsp;(T2.Y&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;T.Y)&nbsp;</span><span style="color: #808080">AND</span><span style="color: #000000">&nbsp;(T2.X&nbsp;</span><span style="color: #808080">&gt;</span><span style="color: #000000">&nbsp;T.X&nbsp;</span><span style="color: #808080">OR</span><span style="color: #000000"><br />
<img src="http://www.cnblogs.com/Images/OutliningIndicators/None.gif" align="top"  alt="" />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;T2.X&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;T.X&nbsp;</span><span style="color: #808080">AND</span><span style="color: #000000">&nbsp;T2.ID&nbsp;</span><span style="color: #808080">&gt;</span><span style="color: #000000">&nbsp;T.ID)))</span></div>
<br />
在Y列在建立索引，可以大大优化查询速度。<br />
 <img src ="http://www.cnblogs.com/drc/aggbug/934294.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42099/" target="_blank">[新闻]SNS网站风靡影响工作效率 公司下令封杀</a>]]></description></item><item><title>配置Integration Services服务来解决：无法为此请求检索数据。(Microsoft.SqlServer.SmoEnum)</title><link>http://www.cnblogs.com/drc/archive/2007/10/12/922295.html</link><dc:creator>简单</dc:creator><author>简单</author><pubDate>Fri, 12 Oct 2007 07:01:00 GMT</pubDate><guid>http://www.cnblogs.com/drc/archive/2007/10/12/922295.html</guid><wfw:comment>http://www.cnblogs.com/drc/comments/922295.html</wfw:comment><comments>http://www.cnblogs.com/drc/archive/2007/10/12/922295.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.cnblogs.com/drc/comments/commentRss/922295.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/drc/services/trackbacks/922295.html</trackback:ping><description><![CDATA[摘要: <br>Integration Services展开时出现错误：无法为此请求检索数据。(Microsoft.SqlServer.SmoEnum)<br>解决办法：可以通过修改配置文件来解决该问题：<br>&nbsp;&nbsp;<a href='http://www.cnblogs.com/drc/archive/2007/10/12/922295.html'>阅读全文</a><img src ="http://www.cnblogs.com/drc/aggbug/922295.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42098/" target="_blank">[新闻]《孢子》正式发布</a>]]></description></item><item><title>Oracle Data Convertion 简单方法</title><link>http://www.cnblogs.com/drc/archive/2007/08/15/856672.html</link><dc:creator>简单</dc:creator><author>简单</author><pubDate>Wed, 15 Aug 2007 06:14:00 GMT</pubDate><guid>http://www.cnblogs.com/drc/archive/2007/08/15/856672.html</guid><wfw:comment>http://www.cnblogs.com/drc/comments/856672.html</wfw:comment><comments>http://www.cnblogs.com/drc/archive/2007/08/15/856672.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.cnblogs.com/drc/comments/commentRss/856672.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/drc/services/trackbacks/856672.html</trackback:ping><description><![CDATA[<p style="FONT-SIZE: 10pt"><br>Oracle EBS各模块之间及与处部系统之间的数据转换和传递都是经过Interface表来完成的，上线前需要做Data Convertion工作，比起常规的API、DataLoad等方式，用&#8220;PL/SQL Developer&#8221;的文本导入器功能来实现更简单。<br><br><font size=2>&#8220;PL/SQL Developer&#8221;的提供多种导入功能，其中&#8220;</font><font size=2>工具--&gt;文本导入器&#8221;，可以导入CVS等文本数据，提供字段对应功能，可以生成导入脚本或直接导入，还可以保存Import Definition为一个文件来反复修改，有多种参数设置，十分方便。</font><br><br><br>See:<br><a href="http://moonsoft.itpub.net/post/15182/128686">EBS有哪些接口表？</a> <br><a href="http://moonsoft.itpub.net/post/15182/232731">Oracle EBS 数据导入方法比较</a></p>
<img src ="http://www.cnblogs.com/drc/aggbug/856672.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42097/" target="_blank">[新闻]微软CFO:仍对收购雅虎搜索业务感兴趣</a>]]></description></item><item><title>运行时动态设置并加密App.Config中的数据库连接字符串</title><link>http://www.cnblogs.com/drc/archive/2006/10/11/526193.html</link><dc:creator>简单</dc:creator><author>简单</author><pubDate>Wed, 11 Oct 2006 05:54:00 GMT</pubDate><guid>http://www.cnblogs.com/drc/archive/2006/10/11/526193.html</guid><wfw:comment>http://www.cnblogs.com/drc/comments/526193.html</wfw:comment><comments>http://www.cnblogs.com/drc/archive/2006/10/11/526193.html#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://www.cnblogs.com/drc/comments/commentRss/526193.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/drc/services/trackbacks/526193.html</trackback:ping><description><![CDATA[摘要: 　　App.config中的数据库连接字符串，是在Settings.settings同步过来的。后者在设计时支持数据集DataSet的设计，但运行时不能更改，可以更改App.config的连接字符串，但无法加密、解密。造成的结果是数据库连接字符串，要么固定不变，要么以明文显示，极不安全。多次尝试后，成功的解决这些问题。<br>&nbsp;&nbsp;<a href='http://www.cnblogs.com/drc/archive/2006/10/11/526193.html'>阅读全文</a><img src ="http://www.cnblogs.com/drc/aggbug/526193.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42095/" target="_blank">[新闻]SQL Server2008十月亮相 标榜智能数据平台</a>]]></description></item><item><title>将后台服务进程和窗口设置进程集成为一个程序</title><link>http://www.cnblogs.com/drc/archive/2006/10/10/524976.html</link><dc:creator>简单</dc:creator><author>简单</author><pubDate>Tue, 10 Oct 2006 02:48:00 GMT</pubDate><guid>http://www.cnblogs.com/drc/archive/2006/10/10/524976.html</guid><wfw:comment>http://www.cnblogs.com/drc/comments/524976.html</wfw:comment><comments>http://www.cnblogs.com/drc/archive/2006/10/10/524976.html#Feedback</comments><slash:comments>7</slash:comments><wfw:commentRss>http://www.cnblogs.com/drc/comments/commentRss/524976.html</wfw:commentRss><trackback:ping>http://www.cnblogs.com/drc/services/trackbacks/524976.html</trackback:ping><description><![CDATA[摘要: 最近写了两个程序，都可以服务进程和窗口进程两种方式运行，由于两类程序都需要入口程序，所以很简单，只要在入口方法代码中判断进入相应分支即可，下面总结一下开发心得。&nbsp;&nbsp;<a href='http://www.cnblogs.com/drc/archive/2006/10/10/524976.html'>阅读全文</a><img src ="http://www.cnblogs.com/drc/aggbug/524976.html?type=1" width = "1" height = "1" /><br><br><a href="http://news.cnblogs.com/n/42091/" target="_blank">[新闻]淘宝将与阿里妈妈合并 大淘宝战略启动</a>]]></description></item></channel></rss>