<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom"><title type="text">博客园_之乎者也，阿弥陀佛</title><subtitle type="text">做技术，不进则退，戒浮戒躁</subtitle><id>http://feed.cnblogs.com/blog/u/34144/rss</id><updated>2012-05-14T09:58:03Z</updated><author><name>搏击的小船</name><uri>http://www.cnblogs.com/guanjie20/</uri></author><generator>feed.cnblogs.com</generator><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guanjie20/"/><link rel="self" type="application/atom+xml" href="http://feed.cnblogs.com/blog/u/34144/rss"/><entry><id>http://www.cnblogs.com/guanjie20/archive/2012/04/24/2467891.html</id><title type="text">@@ERROR, BEGIN TRY/CATCH and XACT_ABORT</title><summary type="text">oday I am showing you the difference between @@ERROR, BEGIN TRY/CATCH and XACT_ABORT. The three alternatives to error handling works little different and let us intercept the error handling in different stages in the process. First I am going to show you the ordinary @@ERRORcheck which most of you..</summary><published>2012-04-24T05:28:00Z</published><updated>2012-04-24T05:28:00Z</updated><author><name>搏击的小船</name><uri>http://www.cnblogs.com/guanjie20/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guanjie20/archive/2012/04/24/2467891.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guanjie20/archive/2012/04/24/2467891.html"/><content type="html">&lt;div&gt;oday I am showing you the difference between &lt;span style="font-family: 'Courier New'; color: fuchsia; font-size: 10pt"&gt;@@ERROR&lt;/span&gt;, &lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;BEGIN&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;TRY/CATCH &lt;/span&gt;&lt;/span&gt;and &lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt;"&gt;XACT_ABORT&lt;/span&gt;.&amp;nbsp;&lt;br /&gt; The three alternatives to error handling works little different and let  us intercept the error handling in different stages in the process.&lt;br /&gt; &lt;br /&gt; First I am going to show you the ordinary &lt;span style="font-family: 'Courier New'; color: fuchsia; font-size: 10pt"&gt;@@ERROR&lt;/span&gt;&amp;nbsp;check which most of you are used to. &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;table style="border-bottom: medium none; border-left: medium none; border-collapse: collapse; border-top: medium none; border-right: medium none" border="1" cellpadding="0" cellspacing="0"&gt;     &lt;tbody&gt;         &lt;tr&gt;             &lt;td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 477.3pt; padding-right: 5.4pt; border-top: black 1pt solid; border-right: black 1pt solid; padding-top: 0cm" valign="top" width="636"&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;IF&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: fuchsia"&gt;OBJECT_ID&lt;/span&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt;&lt;span style="color: red"&gt;'uspTest_2000'&lt;/span&gt;&lt;span style="color: gray"&gt;)&lt;/span&gt; &lt;span style="color: gray"&gt;IS&lt;/span&gt; &lt;span style="color: gray"&gt;NOT&lt;/span&gt; &lt;span style="color: gray"&gt;NULL&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;DROP&lt;/span&gt; &lt;span style="color: blue"&gt;PROCEDURE&lt;/span&gt; uspTest_2000&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;GO&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;CREATE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;PROCEDURE&lt;/span&gt; uspTest_2000&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;AS&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;CREATE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;TABLE&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Sample&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: gray; font-size: 10pt"&gt;(&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i &lt;span style="color: blue"&gt;TINYINT&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: gray"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;BEGIN&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;TRANSACTION&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;INSERT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Sample&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 209&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;IF&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: fuchsia"&gt;@@ERROR&lt;/span&gt; &lt;span style="color: gray"&gt;&amp;lt;&amp;gt;&lt;/span&gt; 0&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;BEGIN&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;ROLLBACK&lt;/span&gt; &lt;span style="color: blue"&gt;TRANSACTION&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;PRINT&lt;/span&gt; &lt;span style="color: red"&gt;'Insert Error (User defined error message)'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;END&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;ELSE&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;BEGIN&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;COMMIT&lt;/span&gt; &lt;span style="color: blue"&gt;TRANSACTION&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;PRINT&lt;/span&gt; &lt;span style="color: red"&gt;'Insert OK (User defined error message)'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;END&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;DROP&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;TABLE&lt;/span&gt; #Sample&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;GO&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;DECLARE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @rc &lt;span style="color: blue"&gt;INT&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @rc&amp;nbsp;&lt;span style="color: blue"&gt;AS&lt;/span&gt; rc&lt;span style="color: gray"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: fuchsia"&gt;@@TRANCOUNT&lt;/span&gt; &lt;span style="color: blue"&gt;AS&lt;/span&gt; [TransactionCount]&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;EXEC&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @rc &lt;span style="color: gray"&gt;=&lt;/span&gt; uspTest_2000&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @rc&amp;nbsp;&lt;span style="color: blue"&gt;AS&lt;/span&gt; rc&lt;span style="color: gray"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: fuchsia; font-size: 10pt"&gt;@@TRANCOUNT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;AS&lt;/span&gt; [TransactionCount]&lt;/span&gt;&lt;/div&gt;             &lt;/td&gt;         &lt;/tr&gt;     &lt;/tbody&gt; &lt;/table&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;As you can see, the code works ok and no error  is generated. You also get two resultsets back with in-going and  out-going value for @rc variable.&lt;br /&gt; &lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;In SQL Server 2005 &lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;BEGIN&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;TRY/CATCH&lt;/span&gt;&lt;/span&gt; was introduced and can be written like this.&lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;table style="border-bottom: medium none; border-left: medium none; border-collapse: collapse; border-top: medium none; border-right: medium none" border="1" cellpadding="0" cellspacing="0"&gt;     &lt;tbody&gt;         &lt;tr&gt;             &lt;td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 477.3pt; padding-right: 5.4pt; border-top: black 1pt solid; border-right: black 1pt solid; padding-top: 0cm" valign="top" width="636"&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;IF&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: fuchsia"&gt;OBJECT_ID&lt;/span&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt;&lt;span style="color: red"&gt;'uspTest_2005'&lt;/span&gt;&lt;span style="color: gray"&gt;)&lt;/span&gt; &lt;span style="color: gray"&gt;IS&lt;/span&gt; &lt;span style="color: gray"&gt;NOT&lt;/span&gt; &lt;span style="color: gray"&gt;NULL&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;DROP&lt;/span&gt; &lt;span style="color: blue"&gt;PROCEDURE&lt;/span&gt; uspTest_2005&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;GO&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;CREATE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;PROCEDURE&lt;/span&gt; uspTest_2005&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;AS&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;CREATE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;TABLE&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Sample&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: gray; font-size: 10pt"&gt;(&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i &lt;span style="color: blue"&gt;TINYINT&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: gray"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;BEGIN&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;TRY&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;BEGIN&lt;/span&gt; &lt;span style="color: blue"&gt;TRANSACTION&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;INSERT&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Sample&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;SELECT&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 209&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;COMMIT&lt;/span&gt; &lt;span style="color: blue"&gt;TRANSACTION&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;PRINT&lt;/span&gt; &lt;span style="color: red"&gt;'Insert OK (User defined error message)'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;END&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;TRY&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;BEGIN&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;CATCH&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;ROLLBACK&lt;/span&gt; &lt;span style="color: blue"&gt;TRANSACTION&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;PRINT&lt;/span&gt; &lt;span style="color: red"&gt;'Insert Error (User defined error message)'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;PRINT&lt;/span&gt; &lt;span style="color: fuchsia"&gt;ERROR_MESSAGE&lt;/span&gt;&lt;span style="color: gray"&gt;()&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;END&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;CATCH&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;DROP&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;TABLE&lt;/span&gt; #Sample&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;GO&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;DECLARE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @rc &lt;span style="color: blue"&gt;INT&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @rc&amp;nbsp;&lt;span style="color: blue"&gt;AS&lt;/span&gt; rc&lt;span style="color: gray"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: fuchsia"&gt;@@TRANCOUNT&lt;/span&gt; &lt;span style="color: blue"&gt;AS&lt;/span&gt; [TransactionCount]&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;EXEC&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @rc &lt;span style="color: gray"&gt;=&lt;/span&gt; uspTest_2005&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @rc&amp;nbsp;&lt;span style="color: blue"&gt;AS&lt;/span&gt; rc&lt;span style="color: gray"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: fuchsia"&gt;@@TRANCOUNT&lt;/span&gt; &lt;span style="color: blue"&gt;AS&lt;/span&gt; [TransactionCount]&lt;/span&gt;&lt;/div&gt;             &lt;/td&gt;         &lt;/tr&gt;     &lt;/tbody&gt; &lt;/table&gt; &lt;div&gt;&amp;nbsp;&lt;br /&gt; As you can see, we again get two resultsets back with in-going and out-going values for @rc.&lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;In SQL Server 2005 and SQL Server 2008 we also have the option of&amp;nbsp; &lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;XACT_ABORT&lt;/span&gt;.&lt;/div&gt; &lt;div&gt;You can see here how that is written.&lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;table style="border-bottom: medium none; border-left: medium none; border-collapse: collapse; border-top: medium none; border-right: medium none" border="1" cellpadding="0" cellspacing="0"&gt;     &lt;tbody&gt;         &lt;tr&gt;             &lt;td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 477.3pt; padding-right: 5.4pt; border-top: black 1pt solid; border-right: black 1pt solid; padding-top: 0cm" valign="top" width="636"&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;IF&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: fuchsia"&gt;OBJECT_ID&lt;/span&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt;&lt;span style="color: red"&gt;'uspTest_2008'&lt;/span&gt;&lt;span style="color: gray"&gt;)&lt;/span&gt; &lt;span style="color: gray"&gt;IS&lt;/span&gt; &lt;span style="color: gray"&gt;NOT&lt;/span&gt; &lt;span style="color: gray"&gt;NULL&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;DROP&lt;/span&gt; &lt;span style="color: blue"&gt;PROCEDURE&lt;/span&gt; uspTest_2008&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;GO&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;CREATE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;PROCEDURE&lt;/span&gt; uspTest_2008&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;AS&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;SET&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;XACT_ABORT&lt;/span&gt; &lt;span style="color: blue"&gt;ON&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;CREATE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;TABLE&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Sample&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: gray; font-size: 10pt"&gt;(&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i &lt;span style="color: blue"&gt;TINYINT&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: gray"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;INSERT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Sample&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 209&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;DROP&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;TABLE&lt;/span&gt; #Sample&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;GO&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;DECLARE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @rc &lt;span style="color: blue"&gt;INT&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @rc&amp;nbsp;&lt;span style="color: blue"&gt;AS&lt;/span&gt; rc&lt;span style="color: gray"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: fuchsia"&gt;@@TRANCOUNT&lt;/span&gt; &lt;span style="color: blue"&gt;AS&lt;/span&gt; [TransactionCount]&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;EXEC&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @rc &lt;span style="color: gray"&gt;=&lt;/span&gt; uspTest_2008&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @rc&amp;nbsp;&lt;span style="color: blue"&gt;AS&lt;/span&gt; rc&lt;span style="color: gray"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: fuchsia"&gt;@@TRANCOUNT&lt;/span&gt; &lt;span style="color: blue"&gt;AS&lt;/span&gt; [TransactionCount]&lt;/span&gt;&lt;/div&gt;             &lt;/td&gt;         &lt;/tr&gt;     &lt;/tbody&gt; &lt;/table&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;And again we get two resultset back with in-going and out-going values for @rc.&lt;br /&gt; So far so good.&lt;/div&gt;  &lt;div&gt;The interesting&amp;nbsp;part begins when error occurs. We can easily  produce an error by inserting the value of 2090 instead of 209 in the  SMALLINT column.&amp;nbsp;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;table style="border-bottom: medium none; border-left: medium none; border-collapse: collapse; border-top: medium none; border-right: medium none" border="1" cellpadding="0" cellspacing="0"&gt;     &lt;tbody&gt;         &lt;tr&gt;             &lt;td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 477.3pt; padding-right: 5.4pt; border-top: black 1pt solid; border-right: black 1pt solid; padding-top: 0cm" valign="top" width="636"&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;IF&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: fuchsia"&gt;OBJECT_ID&lt;/span&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt;&lt;span style="color: red"&gt;'uspTest_2000'&lt;/span&gt;&lt;span style="color: gray"&gt;)&lt;/span&gt; &lt;span style="color: gray"&gt;IS&lt;/span&gt; &lt;span style="color: gray"&gt;NOT&lt;/span&gt; &lt;span style="color: gray"&gt;NULL&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;DROP&lt;/span&gt; &lt;span style="color: blue"&gt;PROCEDURE&lt;/span&gt; uspTest_2000&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;GO&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;CREATE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;PROCEDURE&lt;/span&gt; uspTest_2000&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;AS&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;CREATE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;TABLE&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Sample&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: gray; font-size: 10pt"&gt;(&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i &lt;span style="color: blue"&gt;TINYINT&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: gray"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;BEGIN&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;TRANSACTION&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;INSERT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Sample&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2090&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;IF&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: fuchsia"&gt;@@ERROR&lt;/span&gt; &lt;span style="color: gray"&gt;&amp;lt;&amp;gt;&lt;/span&gt; 0&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;BEGIN&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;ROLLBACK&lt;/span&gt; &lt;span style="color: blue"&gt;TRANSACTION&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;PRINT&lt;/span&gt; &lt;span style="color: red"&gt;'Insert Error (User defined error message)'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;END&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;ELSE&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;BEGIN&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;COMMIT&lt;/span&gt; &lt;span style="color: blue"&gt;TRANSACTION&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;PRINT&lt;/span&gt; &lt;span style="color: red"&gt;'Insert OK (User defined error message)'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;END&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;DROP&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;TABLE&lt;/span&gt; #Sample&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;GO&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;DECLARE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @rc &lt;span style="color: blue"&gt;INT&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @rc&amp;nbsp;&lt;span style="color: blue"&gt;AS&lt;/span&gt; rc&lt;span style="color: gray"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: fuchsia"&gt;@@TRANCOUNT&lt;/span&gt; &lt;span style="color: blue"&gt;AS&lt;/span&gt; [TransactionCount]&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;EXEC&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @rc &lt;span style="color: gray"&gt;=&lt;/span&gt; uspTest_2000&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @rc&amp;nbsp;&lt;span style="color: blue"&gt;AS&lt;/span&gt; rc&lt;span style="color: gray"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: fuchsia; font-size: 10pt"&gt;@@TRANCOUNT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;AS&lt;/span&gt; [TransactionCount]&lt;/span&gt;&lt;/div&gt;             &lt;/td&gt;         &lt;/tr&gt;     &lt;/tbody&gt; &lt;/table&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;Yes, we do get two resultsets back, and we also get two error messages!&lt;/div&gt; &lt;div&gt;SQL Server delivers&amp;nbsp;a collection&amp;nbsp;of&amp;nbsp;error  messages back to the client!&amp;nbsp;This &amp;nbsp;collection has two error messages;  first one for SQL Server internal and the other is the user defined  error message.&lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;table style="border-bottom: medium none; border-left: medium none; border-collapse: collapse; border-top: medium none; border-right: medium none" border="1" cellpadding="0" cellspacing="0"&gt;     &lt;tbody&gt;         &lt;tr&gt;             &lt;td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 477.3pt; padding-right: 5.4pt; border-top: black 1pt solid; border-right: black 1pt solid; padding-top: 0cm" valign="top" width="636"&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 8pt"&gt;Msg 220, Level 16, State 2, Procedure uspTest_2000, Line 11&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: red; font-size: 8pt"&gt;Arithmetic overflow error for data type tinyint, value = 2090.&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt"&gt;The statement has been terminated.&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt"&gt;Insert Error (User defined error message)&lt;/span&gt;&lt;/div&gt;             &lt;/td&gt;         &lt;/tr&gt;     &lt;/tbody&gt; &lt;/table&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;What happens then with &lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;BEGIN&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;TRY/CATCH&lt;/span&gt;&lt;/span&gt;?&lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;table style="border-bottom: medium none; border-left: medium none; border-collapse: collapse; border-top: medium none; border-right: medium none" border="1" cellpadding="0" cellspacing="0"&gt;     &lt;tbody&gt;         &lt;tr&gt;             &lt;td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 477.3pt; padding-right: 5.4pt; border-top: black 1pt solid; border-right: black 1pt solid; padding-top: 0cm" valign="top" width="636"&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;IF&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: fuchsia"&gt;OBJECT_ID&lt;/span&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt;&lt;span style="color: red"&gt;'uspTest_2005'&lt;/span&gt;&lt;span style="color: gray"&gt;)&lt;/span&gt; &lt;span style="color: gray"&gt;IS&lt;/span&gt; &lt;span style="color: gray"&gt;NOT&lt;/span&gt; &lt;span style="color: gray"&gt;NULL&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;DROP&lt;/span&gt; &lt;span style="color: blue"&gt;PROCEDURE&lt;/span&gt; uspTest_2005&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;GO&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;CREATE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;PROCEDURE&lt;/span&gt; uspTest_2005&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;AS&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;CREATE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;TABLE&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Sample&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: gray; font-size: 10pt"&gt;(&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i &lt;span style="color: blue"&gt;TINYINT&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: gray"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;BEGIN&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;TRY&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;BEGIN&lt;/span&gt; &lt;span style="color: blue"&gt;TRANSACTION&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;INSERT&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Sample&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;SELECT&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2090&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;COMMIT&lt;/span&gt; &lt;span style="color: blue"&gt;TRANSACTION&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;PRINT&lt;/span&gt; &lt;span style="color: red"&gt;'Insert OK (User defined error message)'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;END&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;TRY&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;BEGIN&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;CATCH&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;ROLLBACK&lt;/span&gt; &lt;span style="color: blue"&gt;TRANSACTION&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;PRINT&lt;/span&gt; &lt;span style="color: red"&gt;'Insert Error (User defined error message)'&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;PRINT&lt;/span&gt; &lt;span style="color: fuchsia"&gt;ERROR_MESSAGE&lt;/span&gt;&lt;span style="color: gray"&gt;()&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;END&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;CATCH&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;DROP&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;TABLE&lt;/span&gt; #Sample&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;GO&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;DECLARE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @rc &lt;span style="color: blue"&gt;INT&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @rc&amp;nbsp;&lt;span style="color: blue"&gt;AS&lt;/span&gt; rc&lt;span style="color: gray"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: fuchsia"&gt;@@TRANCOUNT&lt;/span&gt; &lt;span style="color: blue"&gt;AS&lt;/span&gt; [TransactionCount]&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;EXEC&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @rc &lt;span style="color: gray"&gt;=&lt;/span&gt; uspTest_2005&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @rc&amp;nbsp;&lt;span style="color: blue"&gt;AS&lt;/span&gt; rc&lt;span style="color: gray"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: fuchsia"&gt;@@TRANCOUNT&lt;/span&gt; &lt;span style="color: blue"&gt;AS&lt;/span&gt; [TransactionCount]&lt;/span&gt;&lt;/div&gt;             &lt;/td&gt;         &lt;/tr&gt;     &lt;/tbody&gt; &lt;/table&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;The big difference is that now the internal error message provided by SQL Server is not displayed automatically!&lt;br /&gt; &lt;br /&gt; Luckily we also have more error function to use besides the one you see in the code above;&amp;nbsp; &lt;span style="font-family: 'Courier New'; color: fuchsia; font-size: 10pt"&gt;ERROR_MESSAGE&lt;/span&gt;.&lt;br /&gt; One of those is named&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: fuchsia; font-size: 10pt"&gt;ERROR_LINE&lt;/span&gt; which gives you the line number for the statement generating the error!&lt;/div&gt; &lt;div&gt;With &lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;BEGIN&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;TRY/CATCH &lt;/span&gt;&lt;/span&gt;we have the option to decide which error message to display and in which order.&lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;table style="border-bottom: medium none; border-left: medium none; border-collapse: collapse; border-top: medium none; border-right: medium none" border="1" cellpadding="0" cellspacing="0"&gt;     &lt;tbody&gt;         &lt;tr&gt;             &lt;td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 477.3pt; padding-right: 5.4pt; border-top: black 1pt solid; border-right: black 1pt solid; padding-top: 0cm" valign="top" width="636"&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt"&gt;Insert Error (User defined error message)&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 8pt"&gt;Arithmetic overflow error for data type tinyint, value = 2090.&lt;/span&gt;&lt;/div&gt;             &lt;/td&gt;         &lt;/tr&gt;     &lt;/tbody&gt; &lt;/table&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;How&amp;nbsp;does then&amp;nbsp;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;XACT_ABORT&amp;nbsp;&lt;/span&gt;work?&amp;nbsp;&lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;table style="border-bottom: medium none; border-left: medium none; border-collapse: collapse; border-top: medium none; border-right: medium none" border="1" cellpadding="0" cellspacing="0"&gt;     &lt;tbody&gt;         &lt;tr&gt;             &lt;td style="border-bottom: black 1pt solid; border-left: black 1pt solid; padding-bottom: 0cm; background-color: transparent; padding-left: 5.4pt; width: 477.3pt; padding-right: 5.4pt; border-top: black 1pt solid; border-right: black 1pt solid; padding-top: 0cm" valign="top" width="636"&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;IF&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: fuchsia"&gt;OBJECT_ID&lt;/span&gt;&lt;span style="color: gray"&gt;(&lt;/span&gt;&lt;span style="color: red"&gt;'uspTest_2008'&lt;/span&gt;&lt;span style="color: gray"&gt;)&lt;/span&gt; &lt;span style="color: gray"&gt;IS&lt;/span&gt; &lt;span style="color: gray"&gt;NOT&lt;/span&gt; &lt;span style="color: gray"&gt;NULL&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: blue"&gt;DROP&lt;/span&gt; &lt;span style="color: blue"&gt;PROCEDURE&lt;/span&gt; uspTest_2008&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;GO&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;CREATE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;PROCEDURE&lt;/span&gt; uspTest_2008&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;AS&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;SET&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;XACT_ABORT&lt;/span&gt; &lt;span style="color: blue"&gt;ON&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;CREATE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;TABLE&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Sample&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;span style="font-family: 'Courier New'; color: gray; font-size: 10pt"&gt;(&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; i &lt;span style="color: blue"&gt;TINYINT&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: gray"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;INSERT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #Sample&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 2090&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;DROP&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt; &lt;span style="color: blue"&gt;TABLE&lt;/span&gt; #Sample&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;GO&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;DECLARE&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; @rc &lt;span style="color: blue"&gt;INT&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @rc&amp;nbsp;&lt;span style="color: blue"&gt;AS&lt;/span&gt; rc&lt;span style="color: gray"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: fuchsia"&gt;@@TRANCOUNT&lt;/span&gt; &lt;span style="color: blue"&gt;AS&lt;/span&gt; [TransactionCount]&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;EXEC&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @rc &lt;span style="color: gray"&gt;=&lt;/span&gt; uspTest_2008&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&amp;nbsp;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; color: blue; font-size: 10pt"&gt;SELECT&lt;/span&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; @rc&amp;nbsp;&lt;span style="color: blue"&gt;AS&lt;/span&gt; rc&lt;span style="color: gray"&gt;,&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;             &lt;div&gt;&lt;span style="font-family: 'Courier New'; font-size: 10pt"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;span style="color: fuchsia"&gt;@@TRANCOUNT&lt;/span&gt; &lt;span style="color: blue"&gt;AS&lt;/span&gt; [TransactionCount]&lt;/span&gt;&lt;/div&gt;             &lt;/td&gt;         &lt;/tr&gt;     &lt;/tbody&gt; &lt;/table&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;The big difference is that we don't have to explicit handle our transactions. SQL Server automatically does a rollback.&lt;/div&gt; &lt;div&gt;The other difference is that all code after the error is skipped.&lt;/div&gt; &lt;div&gt;&amp;nbsp;&lt;/div&gt; &lt;div&gt;You can tell due to now there is only one resultset which contains the in-going value for @rc.&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Refer: &lt;/p&gt;&lt;div&gt;http://weblogs.sqlteam.com/peterl/archive/2009/04/07/ERROR-BEGIN-TRYCATCH-and-XACT_ABORT.aspx&lt;/div&gt;&lt;br /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/guanjie20/aggbug/2467891.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/guanjie20/archive/2012/04/24/2467891.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/guanjie20/archive/2012/04/23/2466757.html</id><title type="text">jQuery UI dialog插件出错信息:$(this).dialog is not a function</title><summary type="text">使用jQuery UI 1.7.2 dialog插件，遇到这样的错误： [img]http://dl.iteye.com/upload/attachment/308166/97c428e4-2ce2-367e-b4df-4c4da7686b95.bmp&amp;quot; alt=&amp;quot;&amp;quot; width=&amp;quot;210&amp;quot; height=&amp;quot;44[/img] $("#dialog").dialog({width:480,height:"auto",resizable:false,d</summary><published>2012-04-23T09:51:00Z</published><updated>2012-04-23T09:51:00Z</updated><author><name>搏击的小船</name><uri>http://www.cnblogs.com/guanjie20/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guanjie20/archive/2012/04/23/2466757.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guanjie20/archive/2012/04/23/2466757.html"/><content type="html">&lt;div&gt;使用jQuery UI 1.7.2 dialog插件，遇到这样的错误： &lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;div&gt;[img]http://dl.iteye.com/upload/attachment/308166/97c428e4-2ce2-367e-b4df-4c4da7686b95.bmp&amp;amp;quot;  alt=&amp;amp;quot;&amp;amp;quot; width=&amp;amp;quot;210&amp;amp;quot;  height=&amp;amp;quot;44[/img] &lt;/div&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$("#dialog").dialog({&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;width:&amp;nbsp;480,&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;height:"auto",&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;resizable:&amp;nbsp;&lt;span style="color: #0000FF;"&gt;false&lt;/span&gt;,&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;draggable:&amp;nbsp;&lt;span style="color: #0000FF;"&gt;true&lt;/span&gt;,&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;modal:&amp;nbsp;&lt;span style="color: #0000FF;"&gt;true&lt;/span&gt;,&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;position:&amp;nbsp;"center",&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;autoOpen:&amp;nbsp;&lt;span style="color: #0000FF;"&gt;false&lt;/span&gt;,&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;dialogClass:&amp;nbsp;"dialog",&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;buttons:&amp;nbsp;{"关闭":&lt;span style="color: #0000FF;"&gt;function&lt;/span&gt;(){&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$(&lt;span style="color: #0000FF;"&gt;this&lt;/span&gt;).dialog("close");&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}}&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$("#chglogpwd").bind("click",&lt;span style="color: #0000FF;"&gt;function&lt;/span&gt;(){&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$("#dialog").dialog("option","height","400");&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;showModalDialog("#dialog","/accoun/acc/change_logpwd_fm.html?"+&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;Date().getTime(),"修改登录密码");&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;function&lt;/span&gt;&amp;nbsp;showModalDialog(dialogEl,url,title,callback){&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;var&lt;/span&gt;&amp;nbsp;$&lt;span style="color: #0000FF;"&gt;this&lt;/span&gt;&amp;nbsp;=&amp;nbsp;$(dialogEl);&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$&lt;span style="color: #0000FF;"&gt;this&lt;/span&gt;.html("");&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$&lt;span style="color: #0000FF;"&gt;this&lt;/span&gt;.dialog("option","title",title);&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$&lt;span style="color: #0000FF;"&gt;this&lt;/span&gt;.dialog("open");&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$&lt;span style="color: #0000FF;"&gt;this&lt;/span&gt;.load(url).removeClass("hideh");&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;div&gt;调试了很久，发现在当前页面上加载了jquery的js资源，在被load的那个页面中也加载了jquery的资源。 &lt;br /&gt;&amp;lt;script type="text/javascript" src="/common/js/jquery-1.4.2.min.js"&amp;gt;&amp;lt;/script&amp;gt; &lt;br /&gt;尝试将被load的页面中的jquery资源去除，错误便消除。 &lt;/div&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;经测试：&lt;span style="color: red;"&gt;asp.net mvc 1.0/2.0不会出现此错误，但是mvc 3.0中就会出现此错误 &lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/guanjie20/aggbug/2466757.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/guanjie20/archive/2012/04/23/2466757.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/guanjie20/archive/2012/04/19/2456714.html</id><title type="text">检索 COM 类工厂中 CLSID 为{00024500-0000-0000-C000-000000000046} 的组件时失败，原因是出现以下错误: 80070005。</title><summary type="text">从网上搜帖子答案大致相同：登陆网站的用户没有操作Excel.exe的权限 好，运行"中输入dcomcnfg.exe启动"组件服务"，也可以从管理工具里面进， "组件服务"- &gt;"计算机"- &gt;"我的电脑"- &gt;"DCOM配置"-&gt;找到word-&gt;属性-&gt;"标识"标签,选择"交互式用户" -&gt;安全"标签"-&gt;在"启动和激活权限"上点击"自定义&amp;quot</summary><published>2012-04-19T02:48:00Z</published><updated>2012-04-19T02:48:00Z</updated><author><name>搏击的小船</name><uri>http://www.cnblogs.com/guanjie20/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guanjie20/archive/2012/04/19/2456714.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guanjie20/archive/2012/04/19/2456714.html"/><content type="html">&lt;p&gt;&lt;div&gt; &lt;p&gt;从网上搜帖子答案大致相同：登陆网站的用户没有操作&lt;span style="color: red"&gt;Excel&lt;/span&gt;.exe的权限&lt;/p&gt; &lt;p&gt;好，运行"中输入dcomcnfg.exe启动"组件服务"，也可以从管理工具里面进，&lt;/p&gt; &lt;p&gt;&lt;span style="color: red"&gt;"组件服务"- &amp;gt;"计算机"- &amp;gt;"我的电脑"- &amp;gt;"DCOM配置"-&amp;gt;找到word-&amp;gt;属性-&amp;gt;"标识"标签,选择"交互式用户" &lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: red"&gt;-&amp;gt;安全"标签"-&amp;gt;在"启动和激活权限"上点击"自定义",然后点击对应的"编辑"按钮,在弹出的"安全性"对话框中填加 一个"NETWORK &amp;nbsp; SERVICE"用户(注意要选择本计算机名),并给它赋予"本地启动"和"本地激活"权限.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="color: red"&gt;-&amp;gt;"安全"标签,在"访问权限"上点击"自定义",然后点击"编辑",在弹出的"安全性"对话框中也填加一个"NETWORK SERVICE"用户,然后赋予"本地访问"权限. 这样,我们便配置好了相应的Excel的DCOM权限. &lt;/span&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;附：64位系统找看不到office组件服务的原因：&lt;/p&gt;&lt;p&gt;&lt;div&gt;主要是64位系统的问题，excel是32位的组件，所以在正常的系统组件服务里是看不到的&lt;br /&gt;可以通过在运行里面输入 comexp.msc -32 来打开32位的组件服务，在里就能看到excel组件了&lt;/div&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/guanjie20/aggbug/2456714.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/guanjie20/archive/2012/04/19/2456714.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/guanjie20/archive/2012/03/20/2411685.html</id><title type="text">关于在firefox下SSL error renegotiation not allowed的问题</title><summary type="text">自己的SSL证书在火狐下总是出现：安全连接失败连接passport.zygames.com时发生错误。在此SSL套接字上不允许Renegotiation。（错误码：ssl_error_renegotiation_not_allowed）无法显示您尝试查看的页面，因为无法验证所收到数据的真实性。请联系网站的所有者以告知此问题。或者使用帮助菜单中的相关命令来报告此问题站点。需要你在firefox浏览器下输入：about:config并搜索“security.ssl.allow_unrestricted_renego_everywhere__temporarily_available_pref”字样</summary><published>2012-03-20T07:23:00Z</published><updated>2012-03-20T07:23:00Z</updated><author><name>搏击的小船</name><uri>http://www.cnblogs.com/guanjie20/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guanjie20/archive/2012/03/20/2411685.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guanjie20/archive/2012/03/20/2411685.html"/><content type="html">&lt;p&gt;自己的SSL证书在火狐下总是出现：&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;安全连接失败&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;连接passport.zygames.com时发生错误。&lt;br /&gt;&lt;br /&gt;在此SSL套接字上不允许Renegotiation。&lt;br /&gt;&lt;br /&gt;（错误码：ssl_error_renegotiation_not_allowed）&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;无法显示您尝试查看的页面，因为无法验证所收到数据的真实性。&lt;br /&gt;&amp;nbsp;&amp;nbsp;请联系网站的所有者以告知此问题。或者使用帮助菜单中的相关命令来报告此问题站点。&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&amp;nbsp;&lt;div&gt;需要你在firefox浏览器下输入：&lt;br /&gt;&lt;blockquote style='border:2px solid #EFEFEF;color:#333333;padding:5px 10px;'&gt;about:config&lt;br /&gt;&lt;/blockquote&gt;并搜索&amp;#8220;security.ssl.allow_unrestricted_renego_everywhere__temporarily_available_pref&amp;#8221;字样，将其值修改为true即可。&lt;br /&gt;当然最好你需要了解这个选项的打开对于你的浏览器安全来说，是有问题的。&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/guanjie20/aggbug/2411685.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/guanjie20/archive/2012/03/20/2411685.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/guanjie20/archive/2012/03/13/2394250.html</id><title type="text">引用了混乱的组件或类库可能会导致WCF代理类无法正确生成</title><summary type="text">前端时间，使用VS2010引用服务工具生成WCF客户端代理类，但是无论如何更新WCF服务也好还是更新重启VS2010、机器也好，生成的代理类始终并非预料中的类。经过2个小时的排查，终于发现原来引用的中间类库导致的，暂时猜想可能是中间类库存在多个dll相互依赖导致的问题！最后拆分了中间类库发现解决了问题。</summary><published>2012-03-13T09:56:00Z</published><updated>2012-03-13T09:56:00Z</updated><author><name>搏击的小船</name><uri>http://www.cnblogs.com/guanjie20/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guanjie20/archive/2012/03/13/2394250.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guanjie20/archive/2012/03/13/2394250.html"/><content type="html">&lt;p&gt;前端时间，使用VS2010引用服务工具生成WCF客户端代理类，但是无论如何更新WCF服务也好还是更新重启VS2010、机器也好，生成的代理类始终并非预料中的类。&lt;/p&gt;&lt;p&gt;经过2个小时的排查，终于发现原来引用的中间类库导致的，暂时猜想可能是中间类库存在多个dll相互依赖导致的问题！最后拆分了中间类库发现解决了问题。&lt;br /&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/guanjie20/aggbug/2394250.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/guanjie20/archive/2012/03/13/2394250.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/guanjie20/archive/2012/03/11/2394472.html</id><title type="text">依赖倒置原则(DIP)</title><summary type="text">依赖倒置（Dependence Inversion Principle）原则讲的是：要依赖于抽象，不要依赖于具体。 简单的说，依赖倒置原则要求客户端依赖于抽象耦合。 抽象不应当依赖于细节；细节应当依赖于抽象；要针对接口编程，不针对实现编程。举例说明：反面例子：缺点：耦合太紧密，Light发生变化将影响ToggleSwitch解决办法一： 将Light作成Abstract，然后具体类继承自Light。优点：ToggleSwitch依赖于抽象类Light，具有更高的稳定性，而BulbLight与TubeLight继承自Light，可以根据"开放－封闭"原则进行扩展。只要Ligh</summary><published>2012-03-11T12:59:00Z</published><updated>2012-03-11T12:59:00Z</updated><author><name>搏击的小船</name><uri>http://www.cnblogs.com/guanjie20/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guanjie20/archive/2012/03/11/2394472.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guanjie20/archive/2012/03/11/2394472.html"/><content type="html">&lt;div&gt;&lt;p&gt;依赖倒置（Dependence Inversion Principle）原则讲的是：&lt;strong&gt;要依赖于抽象，不要依赖于具体&lt;/strong&gt;。&lt;/p&gt; &lt;p&gt;简单的说，依赖倒置原则要求客户端依赖于抽象耦合。&lt;/p&gt; &lt;p&gt;&lt;strong&gt;抽象不应当依赖于细节；细节应当依赖于抽象&lt;/strong&gt;；&lt;br /&gt;要针对接口编程，不针对实现编程。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;strong&gt;举例说明：&lt;/strong&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;div&gt;&lt;div&gt;反面例子：&lt;/div&gt;&lt;p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/guanjie20/Pic33.gif" height="83" border="0" width="242" /&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;缺点：&lt;/div&gt;&lt;p&gt;耦合太紧密，Light发生变化将影响ToggleSwitch&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;解决办法一： &lt;/div&gt;&lt;p&gt;将Light作成Abstract，然后具体类继承自Light。&lt;/p&gt;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/guanjie20/Pic34.gif" height="182" border="0" width="288" /&gt;&amp;nbsp;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;优点：&lt;/div&gt;&lt;p&gt;ToggleSwitch依赖于抽象类Light，具有更高的稳定性，而BulbLight与TubeLight继承自Light，可以根据"开放－封闭"原则进行扩展。只要Light不发生变化，BulbLight与TubeLight的变化就不会波及ToggleSwitch。 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;缺点：&lt;/div&gt;&lt;p&gt;如果用ToggleSwitch控制一台电视就很困难了。总不能让TV继承自Light吧。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;解决方法二：&lt;/div&gt;&amp;nbsp;&lt;img alt="" src="http://images.cnblogs.com/cnblogs_com/guanjie20/Pic35.gif" height="310" width="505" /&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&amp;nbsp;&lt;div&gt;优点：&lt;/div&gt;&lt;p&gt;更为通用、更为稳定。&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;div&gt;&lt;strong&gt;启发式规则:&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;1、任何变量都不应该持有一个指向具体类的指针或者引用&lt;/div&gt;&lt;p&gt;2、任何类都不应该从具体类派生(始于抽象,来自具体)&lt;/p&gt;&lt;p&gt;3、任何方法都不应该覆写它的任何基类中的已经实现了的方法 &lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&amp;nbsp;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;div&gt;&lt;span&gt;&lt;strong&gt;如何抽象:&lt;/strong&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;抽象反映高层策略，就是应用中那些不会随着具体细节的改变而改变的规则，常用的词语就是隐喻(metaphore).仔细分析需求，先找出那些业务规则，然后把它们抽象出来形成你的接口。层次化你的设计，常见的方式就是划分出显示层，业务层，持久层，再在每层做抽象。这是最粗糙的层次化，你可以在每层再根据需要划分更细的层次。在实现的时候始终遵循前面提到的原则：只依赖于接口。谁也无法在开始就做到最好，因此要不断迭代，精化设计。&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div&gt;使用传统过程化程序设计所创建的依赖关系，策略依赖于细节，这是糟糕的，因为策略受到细节改变的影响。依赖倒置原则使细节和策略都依赖于抽象，抽象的稳定性决定了系统的稳定性。&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;strong&gt;结论：&lt;/strong&gt;&lt;br /&gt;使用传统过程化程序设计所创建的依赖关系，策略依赖于细节，这是糟糕的，因为策略受到细节改变的影响。依赖倒置原则使细节和策略都依赖于抽象，抽象的稳定性决定了系统的稳定性。&lt;/div&gt;&amp;nbsp;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/guanjie20/aggbug/2394472.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/guanjie20/archive/2012/03/11/2394472.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/guanjie20/archive/2012/03/06/2382086.html</id><title type="text">WCF中的自定义集合类型传输</title><summary type="text">WCF中的自定义集合类型,如果作为服务契约的一部分进行发布,必须要保证以下几点: 1.集合包含的类型必须使用[Serializable]和[DataContract]标记; 2.集合包含的类型属性必须使用 [DataMember]标记,并且,如果是属性(Property),必须要实现get和set; 3.集合类型必须使用[Serializable]和[CollectionDataContract]标记,以及[KnownType]标记指向集合包含的子类型; 4.集合类型必须实现IEnumerable&lt;T&gt;接口; 5.集合类型使用[DataMember]标记的IList将集合项向客户端</summary><published>2012-03-06T07:56:00Z</published><updated>2012-03-06T07:56:00Z</updated><author><name>搏击的小船</name><uri>http://www.cnblogs.com/guanjie20/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guanjie20/archive/2012/03/06/2382086.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guanjie20/archive/2012/03/06/2382086.html"/><content type="html">&lt;div&gt;&lt;p&gt;WCF中的自定义集合类型,如果作为服务契约的一部分进行发布,必须要保证以下几点:&lt;/p&gt; &lt;p&gt;1.集合包含的类型必须使用[Serializable]和[DataContract]标记;&lt;/p&gt; &lt;p&gt;2.集合包含的类型属性必须使用 [DataMember]标记,并且,如果是属性(Property),必须要实现get和set;&lt;/p&gt; &lt;p&gt;3.集合类型必须使用[Serializable]和[CollectionDataContract]标记,以及[KnownType]标记指向集合包含的子类型;&lt;/p&gt; &lt;p&gt;4.集合类型必须实现IEnumerable&amp;lt;T&amp;gt;接口;&lt;/p&gt; &lt;p&gt;5.集合类型使用[DataMember]标记的IList将集合项向客户端公开.&lt;/p&gt; &lt;p&gt;样例如下:&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #0000FF;"&gt;namespace&lt;/span&gt;&amp;nbsp;Sharpnessdotnet&lt;br /&gt;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[Serializable]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[DataContract]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;class&lt;/span&gt;&amp;nbsp;Sharpnessdotnet&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;private&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&amp;nbsp;name;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[DataMember]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;string&lt;/span&gt;&amp;nbsp;Name&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;get&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&amp;nbsp;name;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;set&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;name&amp;nbsp;=&amp;nbsp;value;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[Serializable]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[CollectionDataContract]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[KnownType(&lt;span style="color: #0000FF;"&gt;typeof&lt;/span&gt;(Sharpnessdotnet))]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;class&lt;/span&gt;&amp;nbsp;SharpnessdotentCollection&amp;nbsp;:&amp;nbsp;IEnumerable&amp;lt;Sharpnessdotnet&amp;gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;[DataMember]&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&amp;nbsp;IList&amp;lt;Sharpnessdotnet&amp;gt;&amp;nbsp;List;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&amp;nbsp;SharpnessdotentCollection()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List&amp;nbsp;=&amp;nbsp;&lt;span style="color: #0000FF;"&gt;new&lt;/span&gt;&amp;nbsp;List&amp;lt;Sharpnessdotnet&amp;gt;();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;void&lt;/span&gt;&amp;nbsp;Add(Sharpnessdotnet&amp;nbsp;obj)&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;List.Add(obj);&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;public&lt;/span&gt;&amp;nbsp;IEnumerator&amp;lt;Sharpnessdotnet&amp;gt;&amp;nbsp;GetEnumerator()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&amp;nbsp;List.GetEnumerator();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;IEnumerator&amp;nbsp;IEnumerable.GetEnumerator()&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;return&lt;/span&gt;&amp;nbsp;List.GetEnumerator();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;}&lt;/div&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/guanjie20/aggbug/2382086.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/guanjie20/archive/2012/03/06/2382086.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/guanjie20/archive/2012/03/05/2392236.html</id><title type="text">sql update delete 中 使用 inner join</title><summary type="text">Update Update XXX set XXX where 这种写法大家肯定都知道，才发现update和delete居然支持inner join的update方式，这个在表间关联来做更新和删除操作非常有用. 列子:updatetb_Usersetpass=''fromtb_Userusrinnerjointb_Addressaddronusr.nAddressFK=addr.nAddressIDwhereusr.id=123update的格式是 update t1 set t1.name=’Liu’from t1inner join t2 on t1.id = t2.tid</summary><published>2012-03-05T10:29:00Z</published><updated>2012-03-05T10:29:00Z</updated><author><name>搏击的小船</name><uri>http://www.cnblogs.com/guanjie20/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guanjie20/archive/2012/03/05/2392236.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guanjie20/archive/2012/03/05/2392236.html"/><content type="html">&lt;div&gt;&lt;div style="font-size: 12px; line-height: normal;"&gt;&lt;span style="color: #ff6600;"&gt;&lt;span style="font-size: small;"&gt;&lt;span style="color: #000000;"&gt;Update &lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;p&gt;&lt;span style="font-size: small;"&gt;Update XXX set XXX where 这种写法大家肯定都知道，才发现update和delete居然支持inner join的update方式，这个在表间关联来做更新和删除操作非常有用.&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: small;"&gt;列子:&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;update&lt;/span&gt;&amp;nbsp;tb_User&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;set&lt;/span&gt;&amp;nbsp;pass&lt;span style="color: #808080;"&gt;=&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;''&lt;/span&gt;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;from&lt;/span&gt;&amp;nbsp;tb_User&amp;nbsp;usr&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;inner&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;join&lt;/span&gt;&amp;nbsp;tb_Address&amp;nbsp;addr&amp;nbsp;&lt;span style="color: #0000FF;"&gt;on&lt;/span&gt;&amp;nbsp;usr.nAddressFK&amp;nbsp;&lt;span style="color: #808080;"&gt;=&lt;/span&gt;&amp;nbsp;addr.nAddressID&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;where&lt;/span&gt;&amp;nbsp;usr.id&lt;span style="color: #808080;"&gt;=&lt;/span&gt;&lt;span style="color: #800000; font-weight: bold;"&gt;123&lt;/span&gt;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;span style="font-size: small;"&gt;update的格式是&lt;/span&gt;&lt;/p&gt;&lt;div&gt; &lt;p&gt;&lt;span style="font-size: small;"&gt;update t1 set t1.name=&amp;#8217;Liu&amp;#8217;&lt;/span&gt;&lt;strong style="line-height: normal;"&gt;&lt;span style="line-height: normal; color: #0000ff;"&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;from t1&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;inner join t2 on t1.id = t2.tid&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="line-height: 23px;"&gt;&lt;span style="font-size: small;"&gt;MYSQL，ACCESS 写法如下:&lt;/span&gt;&lt;/span&gt; &lt;br /&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #0000FF;"&gt;UPDATE&lt;/span&gt;&amp;nbsp;mem_world&amp;nbsp;&lt;span style="color: #0000FF;"&gt;AS&lt;/span&gt;&amp;nbsp;mw1&amp;nbsp;&lt;span style="color: #0000FF;"&gt;INNER&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;JOIN&lt;/span&gt;&amp;nbsp;mem_world&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;AS&lt;/span&gt;&amp;nbsp;&amp;nbsp;mw2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;ON&lt;/span&gt;&amp;nbsp;&amp;nbsp;mw1.parentid&amp;nbsp;&lt;span style="color: #808080;"&gt;=&lt;/span&gt;&amp;nbsp;mw2.wid&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;SET&lt;/span&gt;&amp;nbsp;mw1.&lt;span style="color: #0000FF;"&gt;level&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;=&lt;/span&gt;&amp;nbsp;mw2.&lt;span style="color: #0000FF;"&gt;level&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;WHERE&lt;/span&gt;&amp;nbsp;mw2.baseid&amp;nbsp;&lt;span style="color: #808080;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000; font-weight: bold;"&gt;107&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #808080;"&gt;AND&lt;/span&gt;&amp;nbsp;&amp;nbsp;mw2.parentid&amp;nbsp;&lt;span style="color: #808080;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000; font-weight: bold;"&gt;0&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;span style="color: #808080;"&gt;AND&lt;/span&gt;&amp;nbsp;&amp;nbsp;mw2.size&amp;nbsp;&lt;span style="color: #808080;"&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000; font-weight: bold;"&gt;1&lt;/span&gt;;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;p&gt;&lt;span style="line-height: 23px;"&gt;&lt;span style="font-size: small;"&gt;on是表连接的筛选条件&amp;nbsp;&lt;br /&gt;就是说，表连接后，会产生一个类似于临时的视图这么一个东西&amp;nbsp;&lt;br /&gt;where是从这个临时的视图中筛选数据的&amp;nbsp;&lt;br /&gt;所以，你首先要搞清，你的所谓的2个条件属于哪一种&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;/p&gt; &lt;p&gt;Delete&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="font-size: small;"&gt;delete 语句也是类似&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="line-height: normal; color: #000000;"&gt;&lt;span style="font-size: small;"&gt;delete from t1&amp;nbsp;&lt;/span&gt;&lt;span style="line-height: normal; color: #0000ff;"&gt;&lt;strong style="line-height: normal;"&gt;&lt;span style="font-size: small;"&gt;from t1&lt;/span&gt;&lt;/strong&gt;&lt;/span&gt;&lt;span style="font-size: small;"&gt;&amp;nbsp;inner join t2 on t1.id = t2.tid&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;span style="line-height: normal; color: #000000;"&gt;&lt;span style="font-size: small;"&gt;注意&lt;/span&gt;&lt;strong style="line-height: normal;"&gt;&lt;span style="line-height: normal; color: #0000ff;"&gt;&lt;span style="font-size: small;"&gt;蓝色&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;span style="font-size: small;"&gt;部分。&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;mysql: &lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;DELETE&lt;/span&gt;&amp;nbsp;mwb&amp;nbsp;&lt;span style="color: #0000FF;"&gt;FROM&lt;/span&gt;&amp;nbsp;&amp;nbsp;mem_world_building&amp;nbsp;&lt;span style="color: #0000FF;"&gt;AS&lt;/span&gt;&amp;nbsp;mwb&amp;nbsp;&lt;span style="color: #0000FF;"&gt;INNER&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;JOIN&lt;/span&gt;&amp;nbsp;mem_world&amp;nbsp;&lt;span style="color: #0000FF;"&gt;AS&lt;/span&gt;&amp;nbsp;mw&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;ON&lt;/span&gt;&amp;nbsp;mwb.wid&amp;nbsp;&lt;span style="color: #808080;"&gt;=&lt;/span&gt;&amp;nbsp;mw.wid&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;where&lt;/span&gt;&amp;nbsp;mw.type&amp;nbsp;&lt;span style="color: #808080;"&gt;between&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000; font-weight: bold;"&gt;11&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;and&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000; font-weight: bold;"&gt;15&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #808080;"&gt;and&lt;/span&gt;&amp;nbsp;baseid&amp;nbsp;&lt;span style="color: #808080;"&gt;=&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000; font-weight: bold;"&gt;107&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #808080;"&gt;and&lt;/span&gt;&amp;nbsp;mw.parentid&amp;nbsp;&lt;span style="color: #808080;"&gt;&amp;lt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000; font-weight: bold;"&gt;0&lt;/span&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #808080;"&gt;and&lt;/span&gt;&amp;nbsp;&amp;nbsp;mw.size&amp;nbsp;&lt;span style="color: #808080;"&gt;&amp;gt;&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000; font-weight: bold;"&gt;1&lt;/span&gt;;&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div&gt;&lt;span style="line-height: normal; color: #000000;"&gt;&lt;span style="font-size: small;"&gt;下面是ORACLE的:&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;DELETE&lt;/span&gt;&amp;nbsp;TABLE1&amp;nbsp;&lt;span style="color: #0000FF;"&gt;where&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;exists&lt;/span&gt;&amp;nbsp;(&amp;nbsp;&lt;span style="color: #0000FF;"&gt;select&lt;/span&gt;&amp;nbsp;&lt;span style="color: #800000; font-weight: bold;"&gt;1&lt;/span&gt;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;from&lt;/span&gt;&amp;nbsp;table2&amp;nbsp;&lt;span style="color: #0000FF;"&gt;where&lt;/span&gt;&amp;nbsp;&lt;span style="color: #808080;"&gt;and&lt;/span&gt;&amp;nbsp;table1.khid&lt;span style="color: #808080;"&gt;=&lt;/span&gt;table2.khid&amp;nbsp;&lt;span style="color: #808080;"&gt;and&lt;/span&gt;&amp;nbsp;FWDWID&lt;span style="color: #808080;"&gt;=&lt;/span&gt;&lt;span style="color: #800000; font-weight: bold;"&gt;8&lt;/span&gt;);&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;DELETE&lt;/span&gt;&amp;nbsp;TABLE1&amp;nbsp;&lt;span style="color: #0000FF;"&gt;where&lt;/span&gt;&amp;nbsp;KHID&amp;nbsp;&lt;span style="color: #808080;"&gt;exists&lt;/span&gt;&amp;nbsp;(&amp;nbsp;&lt;span style="color: #0000FF;"&gt;select&lt;/span&gt;&amp;nbsp;KHID&amp;nbsp;&lt;span style="color: #0000FF;"&gt;from&lt;/span&gt;&amp;nbsp;table2&amp;nbsp;&lt;span style="color: #0000FF;"&gt;where&lt;/span&gt;&amp;nbsp;FWDWID&lt;span style="color: #808080;"&gt;=&lt;/span&gt;&lt;span style="color: #800000; font-weight: bold;"&gt;8&lt;/span&gt;)&amp;nbsp;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;原文：http://nodonkey.iteye.com/blog/456403&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;img src="http://www.cnblogs.com/guanjie20/aggbug/2392236.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/guanjie20/archive/2012/03/05/2392236.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/guanjie20/archive/2012/03/02/2377306.html</id><title type="text">【jquery】结合class选择器、next、prev方法实现相邻的节点展开隐藏效果</title><summary type="text">在页面效果中，有时候我们程序循环出来的列不能加上ID属性，因为可能有列表可能会循环出多个相同的ID，这样就不能使用Jquery的ID选择器，这时候 我们可以使用Class选择器,同时我们也可能需求是对此节点元素的操作只局限于当前的div（或table中），我们看代码：&lt;!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&gt;&lt;htmlxmlns="http:/</summary><published>2012-03-02T07:40:00Z</published><updated>2012-03-02T07:40:00Z</updated><author><name>搏击的小船</name><uri>http://www.cnblogs.com/guanjie20/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guanjie20/archive/2012/03/02/2377306.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guanjie20/archive/2012/03/02/2377306.html"/><content type="html">&lt;p&gt;在页面效果中，有时候我们程序循环出来的列不能加上ID属性，因为可能有列表可能会循环出多个相同的ID，这样就不能使用Jquery的ID选择器，这时候 我们可以使用Class选择器,&lt;/p&gt;&lt;p&gt;同时我们也可能需求是对此节点元素的操作只局限于当前的div（或table中），我们看代码：&lt;br /&gt;&lt;/p&gt;&lt;div style="background-color: #F5F5F5;border: 1px solid #CCCCCC;padding:10px;"&gt;&lt;div&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;!&lt;/span&gt;&lt;span style="color: #FF00FF;"&gt;DOCTYPE&amp;nbsp;html&amp;nbsp;PUBLIC&amp;nbsp;"-//W3C//DTD&amp;nbsp;XHTML&amp;nbsp;1.0&amp;nbsp;Transitional//EN"&amp;nbsp;"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;html&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;xmlns&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="http://www.w3.org/1999/xhtml"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;head&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;meta&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;http-equiv&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="Content-Type"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;content&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="text/html;&amp;nbsp;charset=utf-8"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;/&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;title&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;jquery效果&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;title&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;script&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;src&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="http://common.cnblogs.com/script/jquery.js"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;type&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="text/javascript"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;script&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;script&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;type&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="text/javascript"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #008000;"&gt;//&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #008000;"&gt;展开隐藏层&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #008000;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$(document).ready(&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;function&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;()&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$(&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;.part&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;).click(&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;function&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;()&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;var&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;hideP&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;$(&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;this&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;).next();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;if&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;(hideP.css(&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;display&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;==&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;none&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;)&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hideP.show();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$(&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;this&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;).hide();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;else&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hideP.hide();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$(&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;this&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;).show();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$(&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;.all&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;"&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;).click(&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;function&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;()&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;var&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;hideP&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;=&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;$(&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;this&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;).prev();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;if&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;(hideP.css(&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;display&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;==&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;none&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;'&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;)&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hideP.show();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$(&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;this&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;).hide();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;else&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;&amp;nbsp;{&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;hideP.hide();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;$(&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #0000FF;"&gt;this&lt;/span&gt;&lt;span style="background-color: #F5F5F5; color: #000000;"&gt;).show();&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;});&amp;nbsp;&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;script&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;head&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;body&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #008000;"&gt;&amp;lt;!--&lt;/span&gt;&lt;span style="color: #008000;"&gt;循环出来的div&lt;/span&gt;&lt;span style="color: #008000;"&gt;--&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;div&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;class&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;='classA'&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;p&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;class&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="part"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;内容1&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;p&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;p&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;class&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="all"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;style&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="display:none"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;内容1，哈哈哈，我展开了，这里是更多内容哈&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;p&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;div&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;div&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;class&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;='classA'&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;p&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;class&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="part"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;内容2&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;p&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;p&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;class&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="all"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;style&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="display:none"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;内容2，哈哈哈，我展开了，这里是更多内容哈&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;p&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;div&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;div&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;class&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;='classA'&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;p&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;class&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="part"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;内容3&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;p&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;&lt;/span&gt;&lt;span style="color: #800000;"&gt;p&amp;nbsp;&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;class&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="all"&lt;/span&gt;&lt;span style="color: #FF0000;"&gt;&amp;nbsp;style&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;="display:none"&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;内容3，哈哈哈，我展开了，这里是更多内容哈&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;p&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;div&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;body&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: #0000FF;"&gt;&amp;lt;/&lt;/span&gt;&lt;span style="color: #800000;"&gt;html&lt;/span&gt;&lt;span style="color: #0000FF;"&gt;&amp;gt;&lt;/span&gt;&lt;/div&gt;&lt;/div&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;p&gt;也就是说我想展开 classA处的隐藏内容，同时不影响到其他相同的classA处的内容。其实这里重点也就是&lt;strong&gt;jquery next、prev&lt;/strong&gt;方法的使用，当然还可以用于其他场合。 &lt;br /&gt;&lt;/p&gt;&lt;p&gt;&amp;nbsp;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/guanjie20/aggbug/2377306.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/guanjie20/archive/2012/03/02/2377306.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry><entry><id>http://www.cnblogs.com/guanjie20/archive/2012/03/01/2405986.html</id><title type="text">VS2010 TFS 如何把一个项目添加到源代码管理中及其他管理</title><summary type="text">TFS源代码控制系统的基本场景如何把一个项目添加到源代码管理中如何与服务器同步如何做Check-In如何做分支与合并什么是上架与下架我们知道工作项是项目管理的基本元素，但是一个项目的成功，光有工作项还是不够的。工作项说明了要做什么事(例如任务)，出了什么问题(例如 Bug)，除此之外，我们还需要将程序一行一行地写出来，TFS的源代码管理控制系统，就能帮助我们管理这一行行的代码，一个个的文件，一次次的修改，直到产品发布。 1、TFS源代码控制系统的基本场景这里介绍一下，如何在Visual Studio.net中使用源代码控制系统，我们知道Visual Studio IDE可以和Visual So</summary><published>2012-03-01T05:41:00Z</published><updated>2012-03-01T05:41:00Z</updated><author><name>搏击的小船</name><uri>http://www.cnblogs.com/guanjie20/</uri></author><link rel="alternate" href="http://www.cnblogs.com/guanjie20/archive/2012/03/01/2405986.html"/><link rel="alternate" type="text/html" href="http://www.cnblogs.com/guanjie20/archive/2012/03/01/2405986.html"/><content type="html">&lt;ol&gt;&lt;li&gt;TFS源代码控制系统的基本场景&lt;/li&gt;&lt;li&gt;如何把一个项目添加到源代码管理中&lt;/li&gt;&lt;li&gt;如何与服务器同步&lt;/li&gt;&lt;li&gt;如何做Check-In&lt;/li&gt;&lt;li&gt;如何做分支与合并&lt;/li&gt;&lt;li&gt;什么是上架与下架&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;我们知道工作项是项目管理的基本元素，但是一个项目的成功，光有工作项还是不够的。工作项说明了要做什么事(例如任务)，出了什么问题(例如 Bug)，除此之外，我们还需要将程序一行一行地写出来，TFS的源代码管理控制系统，就能帮助我们管理这一行行的代码，一个个的文件，一次次的修改，直到产品发布。 &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;strong&gt;1、TFS源代码控制系统的基本场景&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;这里介绍一下，如何在Visual Studio.net中使用源代码控制系统，我们知道Visual Studio IDE可以和Visual Source Safe等多种源代码控制系统集成，所以我们首先需要选择用什么来控制源代码，这可以通过从IDE菜单中选择&amp;#8220;工具(Tools)&amp;#8221;-&amp;gt;&amp;#8220;选项 (Options)&amp;#8221;，在选项对话框中，找到源代码管理（Source Control | Plug-in），然后选择Visual Studio Team Foundation Server: &lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image002_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image002" border="0" alt="clip_image002" src="http://blog.510769.com/CY_Files/1693/201101171522465851.jpg" width="557" height="307" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;strong&gt;2、如何把一个项目添加到源代码管理中&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;首先，我们需要有一个团队项目，下面我们以测试环境中已有的团队项目TFSTest为例进行说明，当我们把一个源代码项目添加到源代码管理系统中时，Visual Studio会为你创建一个工作空间（Workspace）。 &lt;/p&gt;&lt;p&gt;一个工作空间是服务器的文件、目录在客户端的映射。当用户对源代码管理中的目标进行增加、编辑、删除、移动、重命名，或者其他操作时，用户的修改会保留在工作空间中，标记为工作空间中的&amp;#8220;待定/未提交修改&amp;#8221;(Pending Change)。这些修改只有被用户签入（Check In）后，服务器上的文件或目录才会跟着改变。 &lt;/p&gt;&lt;p&gt;下面我们演示创建一个新的解决方案和项目，并将其添加到源代码管理中： &lt;/p&gt;&lt;p&gt;在Visual Studio IDE中，创建一个新的项目，选中&amp;#8220;添加到源代码管理&amp;#8221;（Add to Source Control）： &lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image004_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image004" border="0" alt="clip_image004" src="http://blog.510769.com/CY_Files/1693/201101171522554504.jpg" width="644" height="433" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;集成环境在后台开始创建项目的框架，然后会提示你，选择将新建项目添加到TFS上的哪个Team Project中，这里，我们选择TFSTest项目，点击确定： &lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image006_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image006" border="0" alt="clip_image006" src="http://blog.510769.com/CY_Files/1693/201101171522560421.jpg" width="506" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;然后，我们打开菜单&amp;#8220;视图&amp;#8221;-&amp;gt;&amp;#8220;其他窗口&amp;#8221;-&amp;gt;&amp;#8220;源代码管理资源管理器&amp;#8221;： &lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image008_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image008" border="0" alt="clip_image008" src="http://blog.510769.com/CY_Files/1693/201101171522571642.jpg" width="644" height="246" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;就可以看到新添加到TFSTest团队项目下的ITRequestFormPrj1了： &lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image010_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image010" border="0" alt="clip_image010" src="http://blog.510769.com/CY_Files/1693/201101171522588371.jpg" width="644" height="163" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;项目文件夹前面是一个&lt;strong&gt;黄色的&lt;/strong&gt;&lt;strong&gt;+&lt;/strong&gt;&lt;strong&gt;号&lt;/strong&gt;，代表这些都是Pending Change. &lt;/p&gt;&lt;p&gt;如果我们需要把现有的解决方案，或者项目添加到TFS中，那么可以打开这些解决方案或者项目，然后右键点击解决方案，选择&amp;#8220;将解决方案添加到源代码管理&amp;#8221;： &lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image012_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image012" border="0" alt="clip_image012" src="http://blog.510769.com/CY_Files/1693/201101171522584546.jpg" width="491" height="484" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;然后在弹出的窗口中，选择将解决方案添加到那个Team Project中。 &lt;/p&gt;&lt;p&gt;现在我们试着编译一下项目（模拟一下验证代码的正确性），然后就将这些Pending Change 签入到TFS中，选择&amp;#8220;视图&amp;#8221;-&amp;gt;&amp;#8220;其他窗口&amp;#8221;-&amp;gt;&amp;#8220;挂起的更改&amp;#8221;： &lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image014_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image014" border="0" alt="clip_image014" src="http://blog.510769.com/CY_Files/1693/201101171522598637.jpg" width="644" height="273" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;就可以看到目前有哪些Pending Change： &lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image016_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image016" border="0" alt="clip_image016" src="http://blog.510769.com/CY_Files/1693/201101171522598104.jpg" width="557" height="251" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;然后点击签入按钮，所有被选中的Pending Change文件都会被签入。 &lt;/p&gt;&lt;p&gt;下面我们看看，如果向已经加入源代码管理的项目中，添加一个文件，会是什么情况： &lt;/p&gt;&lt;ul&gt;&lt;li&gt;首先，项目会被自动Check-Out（签出），在项目前面有一个红色的打钩图标(下面左图)&lt;/li&gt;&lt;li&gt;其次，新增的文件前面有一个黄色的+号，表示这是一个挂起修改的文件（下面右图）&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image018_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image018" border="0" alt="clip_image018" src="http://blog.510769.com/CY_Files/1693/201101171523015001.jpg" width="244" height="154" /&gt;&lt;/a&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image020_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image020" border="0" alt="clip_image020" src="http://blog.510769.com/CY_Files/1693/201101171523016354.jpg" width="285" height="171" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;先把Class1文件签入，然后我们试着双击打开Class1.cs文件，输入一行注释，我们发现编辑文件后，文件会被自动签出（Check-Out），由于文件被Check-Out，所以项目的状态也更新成Check-Out了： &lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image022_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image022" border="0" alt="clip_image022" src="http://blog.510769.com/CY_Files/1693/201101171523017501.jpg" width="644" height="273" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;strong&gt;3、如何与服务器同步&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;在团队协同工作的环境中，许多人都在修改同一个项目中的代码，你需要把项目中最新的修改下载到本地。如下的操作，可以让你的工作空间和服务器上的最新版本同步： &lt;/p&gt;&lt;ul&gt;&lt;li&gt;在解决方案窗口中，选择项目或者整个解决方案，右键点击，选择&amp;#8220;获取最新版本&amp;#8221;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image024_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image024" border="0" alt="clip_image024" src="http://blog.510769.com/CY_Files/1693/201101171523031336.jpg" width="244" height="244" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;在源代码资源管理器中，选择一个Team Project，可以将该团队项目的最新版本同步到本地：&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image026_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image026" border="0" alt="clip_image026" src="http://blog.510769.com/CY_Files/1693/201101171523037201.jpg" width="244" height="152" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;如果在上图中，选择一个Team Project下的某个解决方案文件夹，则可以针对某个解决方案获取最新的版本。 &lt;/p&gt;&lt;p&gt;在签入你自己的代码前，最好把服务器上最新的版本同步下来，这个过程需要解决可能的版本冲突问题，然后你要构建项目，保证没有问题后，再签入代码。这是为了尽量避免你签入的代码，导致在服务器和其他开发人员的机器上出现构建失败。 &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;strong&gt;4、如何做Check-In&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;以下三种方法都可以做签入（Check-In） &lt;/p&gt;&lt;ul&gt;&lt;li&gt;在解决方案窗口中，右键点击修改后的文件，然后选择签入&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image028_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image028" border="0" alt="clip_image028" src="http://blog.510769.com/CY_Files/1693/201101171523035450.jpg" width="244" height="238" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;在源代码管理窗口中，右键点击修改后的文件，然后选择&amp;#8220;签入挂起的修改&amp;#8221;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image030_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image030" border="0" alt="clip_image030" src="http://blog.510769.com/CY_Files/1693/201101171523031263.jpg" width="644" height="404" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;在挂起的更改窗口中，选择要签入的文件后，点击签入按钮：&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image032_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image032" border="0" alt="clip_image032" src="http://blog.510769.com/CY_Files/1693/201101171523041863.jpg" width="644" height="184" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;这种方法可以让我们做快速的签入，默认情况下，所有被修改的文件，都会自动列出，根据需要确定要签入的文件后，可以填写签入的注释，对签入的修改关联对应的工作项： &lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image034_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image034" border="0" alt="clip_image034" src="http://blog.510769.com/CY_Files/1693/201101171523048364.jpg" width="644" height="191" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;填写代码的相关审阅者： &lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image036_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image036" border="0" alt="clip_image036" src="http://blog.510769.com/CY_Files/1693/201101171523053671.jpg" width="244" height="121" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;查看签入是否已经满足预定的策略： &lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image038_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image038" border="0" alt="clip_image038" src="http://blog.510769.com/CY_Files/1693/201101171523056607.jpg" width="644" height="379" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;当用户选择签入后，所有选中的文件，签入说明，以及与此次签入相关联的工作项，都将被存储到数据库中，作为一个新的更改集（Changeset）。一个更改集是文件版本、相关工作项、以及源代码管理元数据（Metadata）组成的一个单独的实体。 &lt;/p&gt;&lt;p&gt;如果工作项有相关的流程处理规则，这些规则会修改工作项的状态。例如，一个团队可能会定义如下规则：如果当你签入时管理了工作项，并选择&amp;#8220;签入操作&amp;#8221;为&amp;#8220;解决&amp;#8221;，则工作项会从&amp;#8220;活动的&amp;#8221;变为&amp;#8220;解决&amp;#8221;： &lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image040_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image040" border="0" alt="clip_image040" src="http://blog.510769.com/CY_Files/1693/201101171523056724.jpg" width="644" height="278" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;strong&gt;5、如何做分支与合并&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;TFS中支持分支的概念，所谓的&lt;strong&gt;分支（&lt;/strong&gt;&lt;strong&gt;Branching&lt;/strong&gt;&lt;strong&gt;）&lt;/strong&gt;，就是指把源代码控制系统中的文件和目录复制一份。分支能够保持文件和目录的历史，并且能够把旧的文件上的修改合并到新的文件上去。在新的分支上的修改，和原来的分支（一般称为主分支）没有任何关系。 &lt;/p&gt;&lt;p&gt;&lt;strong&gt;合并（Merging&lt;/strong&gt;&lt;strong&gt;）&lt;/strong&gt;是指把不同分支中的文件（文件、目录、团队项目）合并到一起。在合并操作中，一个分支是源分支，另一个是目的分支。源分支中包括了用户想要合并的文件。 &lt;/p&gt;&lt;p&gt;考虑下面这种情况： &lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image042_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image042" border="0" alt="clip_image042" src="http://blog.510769.com/CY_Files/1693/201101171523065122.jpg" width="644" height="196" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;在时间的要求下，我们可能要先发布一个版本，那么我们可以建立一个Release1的分支，然后主分支代码和分支代码同时继续开发。在某个时刻，可以将两个分支合并。 &lt;/p&gt;&lt;p&gt;下面是分支应用的另一种场景： &lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image044_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image044" border="0" alt="clip_image044" src="http://blog.510769.com/CY_Files/1693/201101171523068835.jpg" width="644" height="226" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;在功能细分的要求下，例如Visual Studio就分成好多个版本:Express 版本、标准版本、企业版、架构师版等等。他们拥有共同的基础功能，在这部分功能开发完成后，可以通过分支来实现不同版本对应增值功能的开发，例如从主代码中分支出功能A、功能B &lt;/p&gt;&lt;p&gt;也有可能这些增值功能不是必须的，如果可以实现，我们就合并到主代码中，如果不能实现，则取消合并。 &lt;/p&gt;&lt;p&gt;通过上述的场景，可以看到分支为代码管理提供了更佳的灵活性。 &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;strong&gt;5.1创建分支操作演示&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;在Visual Studio中进行分支操作，十分方便，首先我们创建一个分支： &lt;/p&gt;&lt;ul&gt;&lt;li&gt;在源代码管理器窗口中，选中一个要对其进行分支的项目，例如下图的ITRequestFormPrj1，然后右键点击选择&amp;#8220;分支&amp;#8221;：&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image046_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image046" border="0" alt="clip_image046" src="http://blog.510769.com/CY_Files/1693/201101171523067083.jpg" width="644" height="438" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;在这里，可以选择分支的名称、对主分支的最新版本还是指定版本进行分支，是否创建新分支的本地副本（也就是将新分支从TFS服务器上下载到本地工作区中）&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image048_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image048" border="0" alt="clip_image048" src="http://blog.510769.com/CY_Files/1693/201101171523073741.jpg" width="644" height="300" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;点击确定按钮后，开始创建分支的操作，创建成功后，我们在源代码管理器窗口中，可以看到主分支和新分支之间有一个双向箭头的图标表示了它们的关系：&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image050_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image050" border="0" alt="clip_image050" src="http://blog.510769.com/CY_Files/1693/201101171523071427.jpg" width="644" height="370" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;strong&gt;5.1合并分支操作演示&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;我们先试着在新的分支中修改一下代码，然后签入修改，接下来我们演示合并分支的操作： &lt;/p&gt;&lt;ul&gt;&lt;li&gt;在源代码管理器窗口中，选择一个分支，将其合并到主分支，右键点击后，选择&amp;#8220;合并&amp;#8221;：&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image052_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image052" border="0" alt="clip_image052" src="http://blog.510769.com/CY_Files/1693/201101171523080358.jpg" width="541" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;在源代码管理合并向导中，选中的分支作为源分支，目标分支会自动被识别出来：&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image054_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image054" border="0" alt="clip_image054" src="http://blog.510769.com/CY_Files/1693/201101171523086648.jpg" width="557" height="449" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;在上图中，点击下一步按钮，向导会提示你，选择源分支的哪个版本进行合并：&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image056_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image056" border="0" alt="clip_image056" src="http://blog.510769.com/CY_Files/1693/201101171523093163.jpg" width="603" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;确定以后，向导提示你可能需要解决冲突：&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image058_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image058" border="0" alt="clip_image058" src="http://blog.510769.com/CY_Files/1693/201101171523095835.jpg" width="605" height="484" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p&gt;点击完成按钮，如果合并的分支之间有冲突，则会提示你要先解决冲突后，才能合并： &lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image060_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image060" border="0" alt="clip_image060" src="http://blog.510769.com/CY_Files/1693/201101171523095727.jpg" width="644" height="355" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;点击解决按钮，提示Form1.cs文件存在冲突： &lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image062_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image062" border="0" alt="clip_image062" src="http://blog.510769.com/CY_Files/1693/201101171523106733.jpg" width="644" height="420" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;点击比较按钮，在比较窗口中，会显示两个分支中，同一个文件的差异： &lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image064_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image064" border="0" alt="clip_image064" src="http://blog.510769.com/CY_Files/1693/201101171523118522.jpg" width="644" height="374" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;在上一个窗口中，选择&amp;#8220;在合并工具中合并修改&amp;#8221;，并点击确定按钮： &lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image066_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image066" border="0" alt="clip_image066" src="http://blog.510769.com/CY_Files/1693/201101171523114650.jpg" width="644" height="223" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;后台会为你启动合并工具，需要稍等片刻： &lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image068_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image068" border="0" alt="clip_image068" src="http://blog.510769.com/CY_Files/1693/201101171523115320.jpg" width="644" height="349" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;在合并工具中，可以选择一边的更改加以应用，如果有多个不一致的地方，则可以通过&amp;#8220;上一个更改&amp;#8221;和&amp;#8220;下一个更改&amp;#8221;进行方便的导航： &lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image070_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image070" border="0" alt="clip_image070" src="http://blog.510769.com/CY_Files/1693/201101171523124200.jpg" width="644" height="429" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;选择一个更改的内容后，你还可以在最下面的编辑窗口中，进行最后的修改，然后点击确定即可： &lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image072_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image072" border="0" alt="clip_image072" src="http://blog.510769.com/CY_Files/1693/201101171523130741.jpg" width="644" height="198" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;提示冲突已经解决，是否保存文件，点击是： &lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image074_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image074" border="0" alt="clip_image074" src="http://blog.510769.com/CY_Files/1693/201101171523130337.jpg" width="644" height="200" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;当所有冲突都已经解决后，点击关闭，退出冲突处理，完成合并操作： &lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image076_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image076" border="0" alt="clip_image076" src="http://blog.510769.com/CY_Files/1693/201101171523145350.jpg" width="644" height="350" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;这个时候，我们打开合并的目标分支，因为修改的内容合并到了目标分支，目标分支的对应文件处于挂起的更改&amp;#8220;合并，编辑&amp;#8221;，需要对其进行签入操作，才能将最新的内容提交到TFS服务器上： &lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image078_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image078" border="0" alt="clip_image078" src="http://blog.510769.com/CY_Files/1693/201101171523145468.jpg" width="644" height="279" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;&lt;strong&gt;&lt;strong&gt;6、什么是上架与下架&lt;/strong&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;&lt;strong&gt;上架（Shelve&lt;/strong&gt;&lt;strong&gt;）和下架（UnShelve&lt;/strong&gt;&lt;strong&gt;）&lt;/strong&gt;命令听起来不容易理解。我们不妨相像一下，你正在办公桌上伏案画图，假设是用工笔画红楼梦群芳夜宴图，大大小小的美女草图铺满了桌面，这是你接到命令要做另外一件事：泼墨画，而你只有一个办公桌，万一泼墨到美女们怎么办?于是你就把目前的所有图纸卷起来，放到书架上。这就相当于上架。 &lt;/p&gt;&lt;p&gt;接下来你开始泼墨画的工作。尽情挥洒之后，清理桌面，从书架上把刚才收起的图纸都拿下来，铺开，继续你的群芳夜宴图。这就相当于下架。 &lt;/p&gt;&lt;p&gt;这两个命令主要用于： &lt;/p&gt;&lt;ul&gt;&lt;li&gt;保存目前的工作，切换到另一个任务&lt;/li&gt;&lt;li&gt;其他人开始代码复审（你将修改上架了，别人可以在自己的环境中，把你上架的内容下架，然后做复审）&lt;/li&gt;&lt;li&gt;集成别人的修改（两人的修改互相依赖，这是可以通过上架/下架命令把修改集成起来）&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;这位多人协作提供一种便利：不需要每次Check-In，然后别人Check-Out，而是多次上架下架后，最后来一次Check-In即可。 &lt;/p&gt;&lt;p&gt;上架的操作十分类似于签入操作，在源代码管理器中，右键点击要上架的文件，选择&amp;#8220;搁置挂起的更改&amp;#8221;即可： &lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image080_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image080" border="0" alt="clip_image080" src="http://blog.510769.com/CY_Files/1693/201101171523141187.jpg" width="558" height="373" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;所有的参数都与签入操作类似，不同的是，修改不会做冲突检查，也不会影响源代码（即没有真正被Check-In，这可以在上架操作结束后，验证文件前面还有红色打钩标志来确认），而是暂时存储在TFS服务器上，以便其他人做下架处理： &lt;/p&gt;&lt;p&gt;&lt;a href="http://images.cnblogs.com/cnblogs_com/ajiefj/WindowsLiveWriter/TFS_A151/clip_image082_2.jpg" target="_blank"&gt;&lt;img style="border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px" title="clip_image082" border="0" alt="clip_image082" src="http://blog.510769.com/CY_Files/1693/201101171523158786.jpg" width="644" height="424" /&gt;&lt;/a&gt; &lt;/p&gt;&lt;p&gt;原文：&lt;a href="http://blog.510769.com/article.aspx?ID=1693"&gt;http://blog.510769.com/article.aspx?ID=1693&lt;/a&gt;&lt;/p&gt;&lt;img src="http://www.cnblogs.com/guanjie20/aggbug/2405986.html?type=1" width="1" height="1" alt=""/&gt;&lt;p&gt;&lt;a href="http://www.cnblogs.com/guanjie20/archive/2012/03/01/2405986.html" target="_blank"&gt;本文链接&lt;/a&gt;&lt;/p&gt;</content></entry></feed>
