﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-&lt;h3 style="font-family: Comic Sans MS"&gt;&lt;font color="#FA1A0A" size="10"&gt;︻┳═一Java&lt;/font&gt;&lt;/h3&gt;-随笔分类-SQL Server</title><link>http://www.blogjava.net/rain1102/category/37658.html</link><description>&lt;br/&gt;&lt;font color="green" style="font-family: 华文行楷;font-size:16px;"&gt;子曰：危邦不入，乱邦不居。天下有道则见，无道则隐。&lt;/font&gt;&lt;font color="#3C1435"&gt;&lt;/font&gt;</description><language>zh-cn</language><lastBuildDate>Sat, 29 Aug 2009 07:48:05 GMT</lastBuildDate><pubDate>Sat, 29 Aug 2009 07:48:05 GMT</pubDate><ttl>60</ttl><item><title>SQL SERVER中的一些SET * ON含义</title><link>http://www.blogjava.net/rain1102/archive/2009/08/29/293058.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Sat, 29 Aug 2009 01:59:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2009/08/29/293058.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/293058.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2009/08/29/293058.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/293058.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/293058.html</trackback:ping><description><![CDATA[<strong>SET XACT_ABORT { ON | OFF }</strong>
<p><font face="Verdana">注释<br />
当 SET XACT_ABORT 为 ON 时，如果 Transact-SQL 语句产生运行时错误，整个事务将终止并回滚。为 OFF 时，只回滚产生错误的 Transact-SQL 语句，而事务将继续进行处理。编译错误（如语法错误）不受 SET XACT_ABORT 的影响。<br />
</font></p>
<br />
<strong>SET QUOTED_IDENTIFIER{ ON | OFF }</strong>
<p><font face="Verdana">注释</font><br />
当 SET QUOTED_IDENTIFIER 为 ON 时，标识符可以由双引号分隔，而文字必须由单引号分隔。当 SET QUOTED_IDENTIFIER 为 OFF 时，标识符不可加引号，且必须符合所有 Transact-SQL 标识符规则。</p>
<br />
<strong>SET ANSI_NULLS { ON | OFF }</strong>
<p><font face="Verdana">注释</font><br />
SQL-92 标准要求在对空值进行等于 (=) 或不等于 (&lt;&gt;) 比较时取值为 FALSE。当 SET ANSI_NULLS 为 ON 时，即使 column_name 中包含空值，使用 WHERE column_name = NULL 的 SELECT 语句仍返回零行。即使 column_name 中包含非空值，使用 WHERE column_name &lt;&gt; NULL 的 SELECT 语句仍会返回零行。 <br />
当 SET ANSI_NULLS 为 OFF 时，等于 (=) 和不等于 (&lt;&gt;) 比较运算符不遵从 SQL-92 标准。使用 WHERE column_name = NULL 的 SELECT 语句返回 column_name 中包含空值的行。使用 WHERE column_name &lt;&gt; NULL 的 SELECT 语句返回列中包含非空值的行。此外，使用 WHERE column_name &lt;&gt; XYZ_value 的 SELECT 语句返回所有不为 XYZ_value 也不为 NULL 的行。 </p><img src ="http://www.blogjava.net/rain1102/aggbug/293058.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2009-08-29 09:59 <a href="http://www.blogjava.net/rain1102/archive/2009/08/29/293058.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL SERVER中两表之间复制数据</title><link>http://www.blogjava.net/rain1102/archive/2009/08/19/291796.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Wed, 19 Aug 2009 07:46:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2009/08/19/291796.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/291796.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2009/08/19/291796.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/291796.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/291796.html</trackback:ping><description><![CDATA[<span style="color: blue">select</span> *&nbsp;<span style="color: blue">into</span>&nbsp;tablenamebak <span style="color: blue">from</span> tablename&nbsp;&nbsp; <span style="color: red">//这里tablenamebak 必须不存在<br />
</span><span style="color: blue">insert</span> <span style="color: blue">into</span> tablenamebak (c1, c2) <span style="color: blue">selec</span>t c1,&nbsp;c2 <span style="color: blue">from</span> tablename&nbsp;<span style="color: red">&nbsp;//这里tablenamebak 必须存在</span><img src ="http://www.blogjava.net/rain1102/aggbug/291796.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2009-08-19 15:46 <a href="http://www.blogjava.net/rain1102/archive/2009/08/19/291796.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> 将Clob类型数据转换成字符串类型</title><link>http://www.blogjava.net/rain1102/archive/2009/06/03/279816.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Wed, 03 Jun 2009 07:11:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2009/06/03/279816.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/279816.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2009/06/03/279816.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/279816.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/279816.html</trackback:ping><description><![CDATA[很多时候会遇到排序或者联合处理clob类型数据, 而clob数据又不支持这两种操作, 所有需要把其转换为字符串来进行处理.<br />
<span style="color: #008000">dbms_lob.substr(clobcloum,2000,1)<br />
</span><br />
select id, name, coden<br />
&nbsp; from cims_supplier<br />
&nbsp;where name like 'A%'<br />
&nbsp;&nbsp; and coden like 'A%'<br />
union<br />
select cdbregno&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; as id,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; dbms_lob.substr(supplier_name,2000,1) as name,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; coden&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; as coden<br />
&nbsp; from acdsupplier_moltable<br />
&nbsp;where supplier_name like 'A%'<br />
&nbsp;&nbsp; and coden like 'A%'<br />
<br />
cims_supplier表中的name是varchar2类型, 而acdsupplier_moltable表中的supplier_name为clob类型, 这样就可以union了.<br />
当然排序也可以了.<br />
select * from t1 order by dbms_lob.substr(clobcloum,2000,1); <br />
<br /><img src ="http://www.blogjava.net/rain1102/aggbug/279816.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2009-06-03 15:11 <a href="http://www.blogjava.net/rain1102/archive/2009/06/03/279816.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>批量删除default约束[转载]</title><link>http://www.blogjava.net/rain1102/archive/2008/11/13/240265.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Thu, 13 Nov 2008 03:18:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2008/11/13/240265.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/240265.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2008/11/13/240265.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/240265.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/240265.html</trackback:ping><description><![CDATA[<div class="content">
<p>有时候需要批量同步数据库的default value 约束(constraint)，在SQL2005中，可以通过sys.default_constraints系统视图来获取该数据库的视图或者某个表对应的视图。 </p>
<p>该视图默认对应字段 </p>
<blockquote>
<p>name：约束名 <br />
object_id ：约束ID <br />
parent_object_id：约束对应的表ID <br />
parent_column_id：约束对应表中的第几列 <br />
definition：默认值 </p>
</blockquote>
<p>如下SQL查询defaulttest数据库中test1表所有的default value constraints 。 </p>
<blockquote>
<p>SELECT * FROM sys.default_constraints WHERE sys.default_constraints.parent_object_id=OBJECT_ID('test1') </p>
</blockquote>
<p>修改带有约束的数据表结构讲了如何删除和添加约束，下面的语句会列出所有的default value constraint。 </p>
<blockquote>
<p>SELECT <br />
sys.default_constraints.name AS name, <br />
sys.[tables].name AS tablename <br />
FROM sys.default_constraints <br />
LEFT JOIN sys.tables ON <br />
sys.[tables].object_id=sys.[default_constraints].parent_object_id </p>
</blockquote>
<p>然后使用游标遍历删除对应表的约束即可 </p>
</div><img src ="http://www.blogjava.net/rain1102/aggbug/240265.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-11-13 11:18 <a href="http://www.blogjava.net/rain1102/archive/2008/11/13/240265.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL中Case的使用方法(下篇) (转载)</title><link>http://www.blogjava.net/rain1102/archive/2008/09/24/230840.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Wed, 24 Sep 2008 03:29:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2008/09/24/230840.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/230840.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2008/09/24/230840.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/230840.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/230840.html</trackback:ping><description><![CDATA[<strong>四，根据条件有选择的UPDATE。</strong> <br />
<br />
例，有如下更新条件
<ol>
    <li>工资5000以上的职员，工资减少10%
    <li>工资在2000到4600之间的职员，工资增加15% </li>
</ol>
很容易考虑的是选择执行两次UPDATE语句，如下所示 <br />
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #800080">--条件1</span>
<span style="color: #0000ff">UPDATE</span> Personnel
<span style="color: #0000ff">SET</span> salary = salary * 0.9
<span style="color: #0000ff">WHERE</span> salary &gt;= 5000;
<span style="color: #800080">--条件2</span>
<span style="color: #0000ff">UPDATE</span> Personnel
<span style="color: #0000ff">SET</span> salary = salary * 1.15
<span style="color: #0000ff">WHERE</span> salary &gt;= 2000 <span style="color: #0000ff">AND</span> salary &lt; 4600;
</pre>
<br />
但是事情没有想象得那么简单，假设有个人工资5000块。首先，按照条件1，工资减少10%，变成工资4500。接下来运行第二个SQL时候，因为这个人的工资是4500在2000到4600的范围之内， 需增加15%，最后这个人的工资结果是5175,不但没有减少，反而增加了。如果要是反过来执行，那么工资4600的人相反会变成减少工资。暂且不管这个规章是多么荒诞，如果想要一个SQL 语句实现这个功能的话，我们需要用到Case函数。代码如下: <br />
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #0000ff">UPDATE</span> Personnel
<span style="color: #0000ff">SET</span> salary = <span style="color: #0000ff">CASE</span> <span style="color: #0000ff">WHEN</span> salary &gt;= 5000
　            <span style="color: #0000ff">THEN</span> salary * 0.9
<span style="color: #0000ff">WHEN</span> salary &gt;= 2000 <span style="color: #0000ff">AND</span> salary &lt; 4600
<span style="color: #0000ff">THEN</span> salary * 1.15
<span style="color: #0000ff">ELSE</span> salary <span style="color: #0000ff">END</span>;
</pre>
<br />
这里要注意一点，最后一行的ELSE salary是必需的，要是没有这行，不符合这两个条件的人的工资将会被写成NUll,那可就大事不妙了。在Case函数中Else部分的默认值是NULL，这点是需要注意的地方。 <br />
这种方法还可以在很多地方使用，比如说变更主键这种累活。 <br />
一般情况下，要想把两条数据的Primary key,a和b交换，需要经过临时存储，拷贝，读回数据的三个过程，要是使用Case函数的话，一切都变得简单多了。 <br />
<table style="border-right: #1e7ab4 1px solid; padding-right: 0px; border-top: #1e7ab4 1px solid; padding-left: 0px; padding-bottom: 0px; margin: 0px; border-left: #1e7ab4 1px solid; padding-top: 0px; border-bottom: #1e7ab4 1px solid; border-collapse: collapse" width="300">
    <tbody>
        <tr>
            <td style="font-weight: bold; color: #ffffff; background-color: #1e7ab4" align="center" width="100">p_key</td>
            <td style="font-weight: bold; color: #ffffff; background-color: #1e7ab4" align="center" width="100">col_1</td>
            <td style="font-weight: bold; color: #ffffff; background-color: #1e7ab4" align="center" width="100">col_2</td>
        </tr>
        <tr>
            <td align="center">a</td>
            <td align="center">1</td>
            <td align="center">张三</td>
        </tr>
        <tr>
            <td align="center">b</td>
            <td align="center">2</td>
            <td align="center">李四</td>
        </tr>
        <tr>
            <td align="center">c</td>
            <td align="center">3</td>
            <td align="center">王五</td>
        </tr>
    </tbody>
</table>
<br />
<br />
假设有如上数据，需要把主键<code>a</code>和<code>b</code>相互交换。用Case函数来实现的话，代码如下 <br />
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #0000ff">UPDATE</span> SomeTable
<span style="color: #0000ff">SET</span> p_key = <span style="color: #0000ff">CASE</span> <span style="color: #0000ff">WHEN</span> p_key = <span style="color: #800080">'a'</span>
<span style="color: #0000ff">THEN</span> <span style="color: #800080">'b'</span>
<span style="color: #0000ff">WHEN</span> p_key = <span style="color: #800080">'b'</span>
<span style="color: #0000ff">THEN</span> <span style="color: #800080">'a'</span>
<span style="color: #0000ff">ELSE</span> p_key <span style="color: #0000ff">END</span>
<span style="color: #0000ff">WHERE</span> p_key <span style="color: #0000ff">IN</span> (<span style="color: #800080">'a'</span>, <span style="color: #800080">'b'</span>);
</pre>
<br />
同样的也可以交换两个Unique key。需要注意的是，如果有需要交换主键的情况发生，多半是当初对这个表的设计进行得不够到位，建议检查表的设计是否妥当。 <br />
<br />
<strong>五，两个表数据是否一致的检查。</strong> <br />
<br />
Case函数不同于DECODE函数。在Case函数中，可以使用BETWEEN,LIKE,IS NULL,IN,EXISTS等等。比如说使用IN,EXISTS，可以进行子查询，从而 实现更多的功能。 <br />
下面具个例子来说明，有两个表，tbl_A,tbl_B，两个表中都有keyCol列。现在我们对两个表进行比较，tbl_A中的keyCol列的数据如果在tbl_B的keyCol列的数据中可以找到， 返回结果'Matched',如果没有找到，返回结果'Unmatched'。 <br />
要实现下面这个功能，可以使用下面两条语句 <br />
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #008000">--使用IN的时候</span>
<span style="color: #0000ff">SELECT</span> keyCol,
<span style="color: #0000ff">CASE</span> <span style="color: #0000ff">WHEN</span> keyCol <span style="color: #0000ff">IN</span> ( <span style="color: #0000ff">SELECT</span> keyCol <span style="color: #0000ff">FROM</span> tbl_B )
<span style="color: #0000ff">THEN</span> <span style="color: #800080">'Matched'</span>
<span style="color: #0000ff">ELSE</span> <span style="color: #800080">'Unmatched'</span> <span style="color: #0000ff">END</span> Label
<span style="color: #0000ff">FROM</span> tbl_A;
<span style="color: #008000">--使用EXISTS的时候</span>
<span style="color: #0000ff">SELECT</span> keyCol,
<span style="color: #0000ff">CASE</span> <span style="color: #0000ff">WHEN</span> EXISTS ( <span style="color: #0000ff">SELECT</span> * <span style="color: #0000ff">FROM</span> tbl_B
<span style="color: #0000ff">WHERE</span> tbl_A.keyCol = tbl_B.keyCol )
<span style="color: #0000ff">THEN</span> <span style="color: #800080">'Matched'</span>
<span style="color: #0000ff">ELSE</span> <span style="color: #800080">'Unmatched'</span> <span style="color: #0000ff">END</span> Label
<span style="color: #0000ff">FROM</span> tbl_A;
</pre>
<br />
使用IN和EXISTS的结果是相同的。也可以使用NOT IN和NOT EXISTS，但是这个时候要注意NULL的情况。 <br />
<br />
<strong>六，在Case函数中使用合计函数</strong> <br />
<br />
假设有下面一个表<br />
<table style="border-right: #1e7ab4 1px solid; padding-right: 1px; border-top: #1e7ab4 1px solid; padding-left: 1px; padding-bottom: 1px; border-left: #1e7ab4 1px solid; padding-top: 1px; border-bottom: #1e7ab4 1px solid; border-collapse: collapse">
    <tbody>
        <tr>
            <td style="font-weight: bold; color: #ffffff; background-color: #1e7ab4"  noWrap align="center">学号(std_id)</td>
            <td style="font-weight: bold; color: #ffffff; background-color: #1e7ab4"  noWrap align="center">课程ID(class_id)</td>
            <td style="font-weight: bold; color: #ffffff; background-color: #1e7ab4"  noWrap align="center">课程名(class_name)</td>
            <td style="font-weight: bold; color: #ffffff; background-color: #1e7ab4"  noWrap align="center">主修flag（main_class_flg)</td>
        </tr>
        <tr>
            <td align="center">100</td>
            <td align="center">1</td>
            <td align="center">经济学</td>
            <td align="center">Y</td>
        </tr>
        <tr>
            <td align="center">100</td>
            <td align="center">2</td>
            <td align="center">历史学</td>
            <td align="center">N</td>
        </tr>
        <tr>
            <td align="center">200</td>
            <td align="center">2</td>
            <td align="center">历史学</td>
            <td align="center">N</td>
        </tr>
        <tr>
            <td align="center">200</td>
            <td align="center">3</td>
            <td align="center">考古学</td>
            <td align="center">Y</td>
        </tr>
        <tr>
            <td align="center">200</td>
            <td align="center">4</td>
            <td align="center">计算机</td>
            <td align="center">N</td>
        </tr>
        <tr>
            <td align="center">300</td>
            <td align="center">4</td>
            <td align="center">计算机</td>
            <td align="center">N</td>
        </tr>
        <tr>
            <td align="center">400</td>
            <td align="center">5</td>
            <td align="center">化学</td>
            <td align="center">N</td>
        </tr>
        <tr>
            <td align="center">500</td>
            <td align="center">6</td>
            <td align="center">数学</td>
            <td align="center">N</td>
        </tr>
    </tbody>
</table>
<br />
有的学生选择了同时修几门课程(100,200)也有的学生只选择了一门课程(300,400,500)。选修多门课程的学生，要选择一门课程作为主修，主修flag里面写入 Y。只选择一门课程的学生，主修flag为N(实际上要是写入Y的话，就没有下面的麻烦事了，为了举例子，还请多多包含)。 <br />
现在我们要按照下面两个条件对这个表进行查询
<ol>
    <li>只选修一门课程的人，返回那门课程的ID
    <li>选修多门课程的人，返回所选的主课程ID </li>
</ol>
<br />
简单的想法就是，执行两条不同的SQL语句进行查询。 <br />
条件1 <br />
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #008000">--条件1：只选择了一门课程的学生</span>
<span style="color: #0000ff">SELECT</span> std_id, MAX(class_id) <span style="color: #0000ff">AS</span> main_class
<span style="color: #0000ff">FROM</span> Studentclass
<span style="color: #0000ff">GROUP</span> <span style="color: #0000ff">BY</span> std_id
<span style="color: #0000ff">HAVING</span> COUNT(*) = 1;
</pre>
<br />
执行结果1 <br />
<pre class="src">STD_ID   MAIN_class
<span style="color: #008000">------   ----------</span>
300      4
400      5
500      6
</pre>
<br />
条件2 <br />
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #008000">--条件2：选择多门课程的学生</span>
<span style="color: #0000ff">SELECT</span> std_id, class_id <span style="color: #0000ff">AS</span> main_class
<span style="color: #0000ff">FROM</span> Studentclass
<span style="color: #0000ff">WHERE</span> main_class_flg = <span style="color: #800080">'Y'</span> ;
</pre>
<br />
执行结果2 <br />
<pre style="line-height: 109%; background-color: #fff7d6">STD_ID  MAIN_class
<span style="color: #008000">------  ----------</span>
100     1
200     3
</pre>
<br />
如果使用Case函数，我们只要一条SQL语句就可以解决问题，具体如下所示 <br />
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #0000ff">SELECT</span>  std_id,
<span style="color: #0000ff">CASE</span> <span style="color: #0000ff">WHEN</span> COUNT(*) = 1  <span style="color: #008000">--只选择一门课程的学生的情况</span>
<span style="color: #0000ff">THEN</span> MAX(class_id)
<span style="color: #0000ff">ELSE</span> MAX(<span style="color: #0000ff">CASE</span> <span style="color: #0000ff">WHEN</span> main_class_flg = <span style="color: #800080">'Y'</span>
<span style="color: #0000ff">THEN</span> class_id
<span style="color: #0000ff">ELSE</span> <span style="color: #0000ff">NULL</span> <span style="color: #0000ff">END</span>
)
<span style="color: #0000ff">END</span> <span style="color: #0000ff">AS</span> main_class
<span style="color: #0000ff">FROM</span> Studentclass
<span style="color: #0000ff">GROUP</span> <span style="color: #0000ff">BY</span> std_id;
</pre>
<br />
运行结果 <br />
<pre style="line-height: 109%; background-color: #fff7d6">STD_ID   MAIN_class
<span style="color: #008000">------   ----------</span>
100      1
200      3
300      4
400      5
500      6
</pre>
<br />
通过在Case函数中嵌套Case函数，在合计函数中使用Case函数等方法，我们可以轻松的解决这个问题。使用Case函数给我们带来了更大的自由度。 <br />
最后提醒一下使用Case函数的新手注意不要犯下面的错误 <br />
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #0000ff">CASE</span> col_1
<span style="color: #0000ff">WHEN</span> 1    　   <span style="color: #0000ff">THEN</span> <span style="color: #800080">'Right'</span>
<span style="color: #0000ff">WHEN</span> <strong class="more">NULL</strong>  <span style="color: #0000ff">THEN</span> <span style="color: #800080">'Wrong'</span>
<span style="color: #0000ff">END</span>
</pre>
<br />
在这个语句中When Null这一行总是返回unknown，所以永远不会出现Wrong的情况。因为这句可以替换成WHEN col_1 = NULL，这是一个错误的用法，这个时候我们应该选择用WHEN col_1 IS NULL。<img src ="http://www.blogjava.net/rain1102/aggbug/230840.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-09-24 11:29 <a href="http://www.blogjava.net/rain1102/archive/2008/09/24/230840.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL中Case的使用方法(上篇)(转载)</title><link>http://www.blogjava.net/rain1102/archive/2008/09/24/230834.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Wed, 24 Sep 2008 03:20:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2008/09/24/230834.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/230834.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2008/09/24/230834.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/230834.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/230834.html</trackback:ping><description><![CDATA[<div class="postBody">Case具有两种格式。简单Case函数和Case搜索函数。
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #008000">--简单Case函数</span>
<span style="color: #0000ff">CASE</span> sex
<span style="color: #0000ff">WHEN</span> <span style="color: #800080">'1'</span> <span style="color: #0000ff">THEN</span> <span style="color: #800080">'男'</span>
<span style="color: #0000ff">WHEN</span> <span style="color: #800080">'2'</span> <span style="color: #0000ff">THEN</span> <span style="color: #800080">'女'</span>
<span style="color: #0000ff">ELSE</span> <span style="color: #800080">'其他'</span> <span style="color: #0000ff">END</span>
<span style="color: #008000">--Case搜索函数</span>
<span style="color: #0000ff">CASE</span> <span style="color: #0000ff">WHEN</span> sex = <span style="color: #800080">'1'</span> <span style="color: #0000ff">THEN</span> <span style="color: #800080">'男'</span>
<span style="color: #0000ff">WHEN</span> sex = <span style="color: #800080">'2'</span> <span style="color: #0000ff">THEN</span> <span style="color: #800080">'女'</span>
<span style="color: #0000ff">ELSE</span> <span style="color: #800080">'其他'</span> <span style="color: #0000ff">END</span>
</pre>
<br />
这两种方式，可以实现相同的功能。简单Case函数的写法相对比较简洁，但是和Case搜索函数相比，功能方面会有些限制，比如写判断式。 <br />
还有一个需要注意的问题，Case函数只返回第一个符合条件的值，剩下的Case部分将会被自动忽略。 <br />
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #008000">--比如说，下面这段SQL，你永远无法得到&#8220;第二类&#8221;这个结果</span>
<span style="color: #0000ff">CASE</span> <span style="color: #0000ff">WHEN</span> col_1 <span style="color: #0000ff"  ?>IN</span> ( <span style="color: #800080">'a'</span>, <span style="color: #800080">'b'</span>) <span style="color: #0000ff"  ?>THEN</span> <span style="color: #800080">'第一类'</span>
<span style="color: #0000ff">WHEN</span> col_1 <span style="color: #0000ff">IN</span> (<span style="color: #800080">'a'</span>)       <span style="color: #0000ff">THEN</span> <span style="color: #800080">'第二类'</span>
<span style="color: #0000ff">ELSE</span><span style="color: #800080">'其他'</span> <span style="color: #0000ff"  ?>END</span></pre>
<br />
下面我们来看一下，使用Case函数都能做些什么事情。 <br />
<br />
<strong>一，已知数据按照另外一种方式进行分组，分析。</strong> <br />
<br />
有如下数据:(为了看得更清楚，我并没有使用国家代码，而是直接用国家名作为Primary Key) <br />
<table style="border-right: #1e7ab4 1px solid; padding-right: 0px; border-top: #1e7ab4 1px solid; padding-left: 0px; padding-bottom: 0px; margin: 0px; border-left: #1e7ab4 1px solid; padding-top: 0px; border-bottom: #1e7ab4 1px solid; border-collapse: collapse" width="200">
    <tbody>
        <tr>
            <td style="font-weight: bold; color: #ffffff; background-color: #1e7ab4" align="center" width="100">国家（country）</td>
            <td style="font-weight: bold; color: #ffffff; background-color: #1e7ab4" bordercolor="#1e7ab4" align="center" width="100">人口（population）</td>
        </tr>
        <tr>
            <td align="center">中国</td>
            <td align="center">600</td>
        </tr>
        <tr>
            <td align="center">美国</td>
            <td align="center">100</td>
        </tr>
        <tr>
            <td align="center">加拿大</td>
            <td align="center">100</td>
        </tr>
        <tr>
            <td align="center">英国</td>
            <td align="center">200</td>
        </tr>
        <tr>
            <td align="center">法国</td>
            <td align="center">300</td>
        </tr>
        <tr>
            <td align="center">日本</td>
            <td align="center">250</td>
        </tr>
        <tr>
            <td align="center">德国</td>
            <td align="center">200</td>
        </tr>
        <tr>
            <td align="center">墨西哥</td>
            <td align="center">50</td>
        </tr>
        <tr>
            <td align="center">印度</td>
            <td align="center">250</td>
        </tr>
    </tbody>
</table>
<br />
根据这个国家人口数据，统计亚洲和北美洲的人口数量。应该得到下面这个结果。 <br />
<table style="border-right: #1e7ab4 1px solid; padding-right: 0px; border-top: #1e7ab4 1px solid; padding-left: 0px; padding-bottom: 0px; margin: 0px; border-left: #1e7ab4 1px solid; padding-top: 0px; border-bottom: #1e7ab4 1px solid; border-collapse: collapse" width="200">
    <tbody>
        <tr>
            <td style="font-weight: bold; color: #ffffff; background-color: #1e7ab4" align="center" width="100">洲</td>
            <td style="font-weight: bold; color: #ffffff; background-color: #1e7ab4" align="center" width="100">人口</td>
        </tr>
        <tr>
            <td align="center">亚洲</td>
            <td align="center">1100</td>
        </tr>
        <tr>
            <td align="center">北美洲</td>
            <td align="center">250</font></td>
        </tr>
        <tr>
            <td align="center">其他</td>
            <td align="center">700</td>
        </tr>
    </tbody>
</table>
<br />
想要解决这个问题，你会怎么做？生成一个带有洲Code的View，是一个解决方法，但是这样很难动态的改变统计的方式。 <br />
如果使用Case函数，SQL代码如下:
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #0000ff">SELECT</span>  SUM(population),
<span style="color: #0000ff">CASE</span> country
<span style="color: #0000ff">WHEN</span> <span style="color: #800080">'中国'</span>     <span style="color: #0000ff">THEN</span> <span style="color: #800080">'亚洲'</span>
<span style="color: #0000ff">WHEN</span> <span style="color: #800080">'印度'</span>     <span style="color: #0000ff">THEN</span> <span style="color: #800080">'亚洲'</span>
<span style="color: #0000ff">WHEN</span> <span style="color: #800080">'日本'</span>     <span style="color: #0000ff">THEN</span> <span style="color: #800080">'亚洲'</span>
<span style="color: #0000ff">WHEN</span> <span style="color: #800080">'美国'</span>     <span style="color: #0000ff">THEN</span> <span style="color: #800080">'北美洲'</span>
<span style="color: #0000ff">WHEN</span> <span style="color: #800080">'加拿大'</span>  <span style="color: #0000ff">THEN</span> <span style="color: #800080">'北美洲'</span>
<span style="color: #0000ff">WHEN</span> <span style="color: #800080">'墨西哥'</span>  <span style="color: #0000ff">THEN</span> <span style="color: #800080">'北美洲'</span>
<span style="color: #0000ff">ELSE</span> <span style="color: #800080">'其他'</span> <span style="color: #0000ff">END</span>
<span style="color: #0000ff">FROM</span>    Table_A
<span style="color: #0000ff">GROUP</span> <span style="color: #0000ff">BY</span> <span style="color: #0000ff">CASE</span> country
<span style="color: #0000ff">WHEN</span> <span style="color: #800080">'中国'</span>     <span style="color: #0000ff">THEN</span> <span style="color: #800080">'亚洲'</span>
<span style="color: #0000ff">WHEN</span> <span style="color: #800080">'印度'</span>     <span style="color: #0000ff">THEN</span> <span style="color: #800080">'亚洲'</span>
<span style="color: #0000ff">WHEN</span> <span style="color: #800080">'日本'</span>     <span style="color: #0000ff">THEN</span> <span style="color: #800080">'亚洲'</span>
<span style="color: #0000ff">WHEN</span> <span style="color: #800080">'美国'</span>     <span style="color: #0000ff">THEN</span> <span style="color: #800080">'北美洲'</span>
<span style="color: #0000ff">WHEN</span> <span style="color: #800080">'加拿大'</span>  <span style="color: #0000ff">THEN</span> <span style="color: #800080">'北美洲'</span>
<span style="color: #0000ff">WHEN</span> <span style="color: #800080">'墨西哥'</span>  <span style="color: #0000ff">THEN</span> <span style="color: #800080">'北美洲'</span>
<span style="color: #0000ff">ELSE</span> <span style="color: #800080">'其他'</span> <span style="color: #0000ff">END</span>;
</pre>
<br />
同样的，我们也可以用这个方法来判断工资的等级，并统计每一等级的人数。SQL代码如下； <br />
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #0000ff">SELECT</span>
<span style="color: #0000ff">CASE</span> <span style="color: #0000ff">WHEN</span> salary &lt;= 500 <span style="color: #0000ff">THEN</span> <span style="color: #008000">'1'</span>
<span style="color: #0000ff">WHEN</span> salary &gt; 500 <span style="color: #0000ff">AND</span> salary &lt;= 600  <span style="color: #0000ff">THEN</span> <span style="color: #800080">'2'</span>
<span style="color: #0000ff">WHEN</span> salary &gt; 600 <span style="color: #0000ff">AND</span> salary &lt;= 800  <span style="color: #0000ff">THEN</span> <span style="color: #800080">'3'</span>
<span style="color: #0000ff">WHEN</span> salary &gt; 800 <span style="color: #0000ff">AND</span> salary &lt;= 1000 <span style="color: #0000ff">THEN</span> <span style="color: #800080">'4'</span>
<span style="color: #0000ff">ELSE</span> <span style="color: #0000ff">NULL</span> <span style="color: #0000ff">END</span> salary_class,
COUNT(*)
<span style="color: #0000ff">FROM</span>    Table_A
<span style="color: #0000ff">GROUP</span> <span style="color: #0000ff">BY</span>
<span style="color: #0000ff">CASE</span> <span style="color: #0000ff">WHEN</span> salary &lt;= 500 <span style="color: #0000ff">THEN</span> <span style="color: #008000">'1'</span>
<span style="color: #0000ff">WHEN</span> salary &gt; 500 <span style="color: #0000ff">AND</span> salary &lt;= 600  <span style="color: #0000ff">THEN</span> <span style="color: #800080">'2'</span>
<span style="color: #0000ff">WHEN</span> salary &gt; 600 <span style="color: #0000ff">AND</span> salary &lt;= 800  <span style="color: #0000ff">THEN</span> <span style="color: #800080">'3'</span>
<span style="color: #0000ff">WHEN</span> salary &gt; 800 <span style="color: #0000ff">AND</span> salary &lt;= 1000 <span style="color: #0000ff">THEN</span> <span style="color: #800080">'4'</span>
<span style="color: #0000ff">ELSE</span> <span style="color: #0000ff">NULL</span> <span style="color: #0000ff">END</span>;
</pre>
<br />
<strong>二，用一个SQL语句完成不同条件的分组。</strong> <br />
<br />
有如下数据 <br />
<table id="Table1" style="border-right: #1e7ab4 1px solid; padding-right: 0px; border-top: #1e7ab4 1px solid; padding-left: 0px; padding-bottom: 0px; margin: 0px; border-left: #1e7ab4 1px solid; padding-top: 0px; border-bottom: #1e7ab4 1px solid; border-collapse: collapse" width="200">
    <tbody>
        <tr>
            <td style="font-weight: bold; color: #ffffff; background-color: #1e7ab4" align="center" width="100">国家（country）</td>
            <td style="font-weight: bold; color: #ffffff; background-color: #1e7ab4" align="center" width="100">性别（sex）</td>
            <td style="font-weight: bold; color: #ffffff; background-color: #1e7ab4" align="center" width="100">人口（population）</td>
        </tr>
        <tr>
            <td align="center">中国</td>
            <td align="center">1</td>
            <td align="center">340</td>
        </tr>
        <tr>
            <td align="center">中国</td>
            <td align="center">2</td>
            <td align="center">260</td>
        </tr>
        <tr>
            <td align="center">美国</td>
            <td align="center">1</td>
            <td align="center">45</td>
        </tr>
        <tr>
            <td align="center">美国</td>
            <td align="center">2</td>
            <td align="center">55</td>
        </tr>
        <tr>
            <td align="center">加拿大</td>
            <td align="center">1</td>
            <td align="center">51</td>
        </tr>
        <tr>
            <td align="center">加拿大</td>
            <td align="center">2</td>
            <td align="center">49</td>
        </tr>
        <tr>
            <td align="center">英国</td>
            <td align="center">1</td>
            <td align="center">40</td>
        </tr>
        <tr>
            <td align="center">英国</td>
            <td align="center">2</td>
            <td align="center">60</td>
        </tr>
    </tbody>
</table>
<br />
按照国家和性别进行分组，得出结果如下 <br />
<table id="Table2" style="border-right: #1e7ab4 1px solid; padding-right: 0px; border-top: #1e7ab4 1px solid; padding-left: 0px; padding-bottom: 0px; margin: 0px; border-left: #1e7ab4 1px solid; padding-top: 0px; border-bottom: #1e7ab4 1px solid; border-collapse: collapse" width="200">
    <tbody>
        <tr>
            <td style="font-weight: bold; color: #ffffff; background-color: #1e7ab4" align="center" width="100">国家</td>
            <td style="font-weight: bold; color: #ffffff; background-color: #1e7ab4" align="center" width="100">男</td>
            <td style="font-weight: bold; color: #ffffff; background-color: #1e7ab4" align="center" width="100">女</td>
        </tr>
        <tr>
            <td align="center">中国</td>
            <td align="center">340</td>
            <td align="center">260</td>
        </tr>
        <tr>
            <td align="center">美国</td>
            <td align="center">45</td>
            <td align="center">55</td>
        </tr>
        <tr>
            <td align="center">加拿大</td>
            <td align="center">51</td>
            <td align="center">49</td>
        </tr>
        <tr>
            <td align="center">英国</td>
            <td align="center">40</td>
            <td align="center">60</td>
        </tr>
    </tbody>
</table>
<br />
普通情况下，用UNION也可以实现用一条语句进行查询。但是那样增加消耗(两个Select部分)，而且SQL语句会比较长。 <br />
下面是一个是用Case函数来完成这个功能的例子 <br />
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #0000ff">SELECT</span> country,
SUM( <span style="color: #0000ff">CASE</span> <span style="color: #0000ff">WHEN</span> sex = <span style="color: #800080">'1'</span> <span style="color: #0000ff">THEN</span>
population <span style="color: #0000ff">ELSE</span> 0 <span style="color: #0000ff">END</span>),  <span style="color: #008000">--男性人口</span>
SUM( <span style="color: #0000ff">CASE</span> <span style="color: #0000ff">WHEN</span> sex = <span style="color: #800080">'2'</span> <span style="color: #0000ff">THEN</span>
population <span style="color: #0000ff">ELSE</span> 0 <span style="color: #0000ff">END</span>)   <span style="color: #008000">--女性人口</span>
<span style="color: #0000ff">FROM</span>  Table_A
<span style="color: #0000ff">GROUP</span> <span style="color: #0000ff">BY</span> country;
</pre>
<br />
这样我们使用Select，完成对二维表的输出形式，充分显示了Case函数的强大。 <br />
<br />
<strong>三，在Check中使用Case函数。</strong> <br />
<br />
在Check中使用Case函数在很多情况下都是非常不错的解决方法。可能有很多人根本就不用Check，那么我建议你在看过下面的例子之后也尝试一下在SQL中使用Check。 <br />
下面我们来举个例子 <br />
公司A，这个公司有个规定，女职员的工资必须高于1000块。如果用Check和Case来表现的话，如下所示
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #0000ff">CONSTRAINT</span> check_salary <span style="color: #0000ff">CHECK</span>
( <span style="color: #0000ff">CASE</span> <span style="color: #0000ff">WHEN</span> sex = <span style="color: #800080">'2'</span>
<span style="color: #0000ff">THEN</span> <span style="color: #0000ff">CASE</span> <span style="color: #0000ff">WHEN</span> salary &gt; 1000
<span style="color: #0000ff">THEN</span> 1 <span style="color: #0000ff">ELSE</span> 0 <span style="color: #0000ff">END</span>
<span style="color: #0000ff">ELSE</span> 1 <span style="color: #0000ff">END</span> = 1 )
</pre>
<br />
如果单纯使用Check，如下所示 <br />
<pre style="line-height: 109%; background-color: #fff7d6"><span style="color: #0000ff">CONSTRAINT</span> check_salary <span style="color: #0000ff">CHECK</span>
( sex = <span style="color: #800080">'2'</span> <span style="color: #0000ff">AND</span> salary &gt; 1000 )
</pre>
<br />
女职员的条件倒是符合了，男职员就无法输入了。 <br />
<br />
<pre>USE pubs
GO
SELECT
CASE
WHEN price IS NULL THEN 'Unpriced'
WHEN price &lt; 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift to impress relatives'
END AS Range,
Title
FROM titles
GROUP BY
CASE
WHEN price IS NULL THEN 'Unpriced'
WHEN price &lt; 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift to impress relatives'
END,
Title
ORDER BY
CASE
WHEN price IS NULL THEN 'Unpriced'
WHEN price &lt; 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift to impress relatives'
END,
Title
GO</pre>
<br />
</div><img src ="http://www.blogjava.net/rain1102/aggbug/230834.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-09-24 11:20 <a href="http://www.blogjava.net/rain1102/archive/2008/09/24/230834.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>删除重复记录</title><link>http://www.blogjava.net/rain1102/archive/2008/09/04/227080.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Thu, 04 Sep 2008 14:52:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2008/09/04/227080.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/227080.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2008/09/04/227080.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/227080.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/227080.html</trackback:ping><description><![CDATA[<p dir="ltr"><strong>问题</strong><br />
从表中删除重复记录.<br />
<br />
<strong>解决方案<br />
</strong><span style="background-color: yellow"><span style="color: #000000"><span style="background-color: #ffffff">用带有聚集函数的子查询, 例如MIN, 任意选择保留的ID(本例中只保留每组中ID号最小的记录):<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000">delete from dept&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;where id not in (select min(id)&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from dept&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;group by name)<br />
</span></span></span></span><span style="background-color: yellow"><span style="background-color: #ffffff"><br />
</p>
</span></span><img src ="http://www.blogjava.net/rain1102/aggbug/227080.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-09-04 22:52 <a href="http://www.blogjava.net/rain1102/archive/2008/09/04/227080.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>复制表定义</title><link>http://www.blogjava.net/rain1102/archive/2008/09/04/227075.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Thu, 04 Sep 2008 14:34:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2008/09/04/227075.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/227075.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2008/09/04/227075.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/227075.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/227075.html</trackback:ping><description><![CDATA[<strong>问题<br />
</strong>要创建新表, 该表与已有表的列设置相同. 例如, 想要一个dept表的副本, 名未dept_2, 淡只是想复制表结构而不想复制源表中的记录.<br />
<br />
<strong>解决方案</strong><br />
DB2<br />
使用带有like子句的create table命令:<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000">create table dept_2 like dept<br />
</span><br />
Oracle, MySQL 和 PostgreSQL<br />
在create table命令中, 使用一个不返回任何行的子查询:<br />
&nbsp;&nbsp;&nbsp;<span style="color: #008000">&nbsp;create table dept_2<br />
&nbsp;&nbsp;&nbsp;&nbsp;as<br />
&nbsp;&nbsp;&nbsp;&nbsp;select * from dept where 1=0<br />
</span><br />
SQL Server<br />
使用带有不返回任何行的查询和into子句:<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000">select * into dept_2 from dept where 1=0</span><img src ="http://www.blogjava.net/rain1102/aggbug/227075.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-09-04 22:34 <a href="http://www.blogjava.net/rain1102/archive/2008/09/04/227075.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>EQL中使用case when..then..else..end和exists语句, 以及True和False</title><link>http://www.blogjava.net/rain1102/archive/2008/08/29/225667.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Fri, 29 Aug 2008 15:38:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2008/08/29/225667.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/225667.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2008/08/29/225667.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/225667.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/225667.html</trackback:ping><description><![CDATA[public List&lt;Meeting&gt; getRecentlyMeetingsByAudit(Long candidateId, Long ownerId) {<br />
&nbsp;&nbsp;&nbsp; List&lt;Meeting&gt; meetings = new ArrayList&lt;Meeting&gt;();<br />
&nbsp;&nbsp; &nbsp;meetings = mgr.createQuery("select new com.integral7.ejb3.investigations.Meeting(m.id, m.scheduledDate, m.type.name, m.description, " +<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; "<span style="color: red"><span style="color: #800080"><strong>case when</strong> </span><span style="color: #0000ff"><strong>exists</strong></span>(select id from MeetingAudit ma where ma.meeting = m and ma.audit.id = ?0) <span style="color: #800080"><strong>then</strong> </span><span style="color: #008000"><strong>True</strong></span> <span style="color: #800080"><strong>else </strong></span><span style="color: #008000"><strong>False</strong> </span><span style="color: #800080"><strong>end</strong></span></span>) " +<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; " from Meeting m " +<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; " where m.owner.id = ?1 and m.scheduledDate &gt;= ?2 order by m.scheduledDate asc")<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .setParameter(0, candidateId)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .setParameter(1, ownerId)<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; .setParameter(2, DateUtils.convertToBeginningOfDay(new Date())).getResultList();<br />
&nbsp;&nbsp; &nbsp;return meetings;<br />
&nbsp;}<br />
<br />
这里主要注意<span style="color: #008000">True</span> 和<span style="color: #008000">False </span>首字母必须大写其余小写.<img src ="http://www.blogjava.net/rain1102/aggbug/225667.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-08-29 23:38 <a href="http://www.blogjava.net/rain1102/archive/2008/08/29/225667.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>DECLARE CURSOR(sqlserver 2000) </title><link>http://www.blogjava.net/rain1102/archive/2008/08/28/225220.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Thu, 28 Aug 2008 03:06:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2008/08/28/225220.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/225220.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2008/08/28/225220.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/225220.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/225220.html</trackback:ping><description><![CDATA[<p><font face="Courier New"><strong>功能:</strong><br />
&nbsp;&nbsp;&nbsp;&nbsp;定义 Transact-SQL 服务器游标的特性，例如游标的滚动行为和用于生成游标对其进行操作的结果集的查询。DECLARE CURSOR 接受基于 SQL-92 标准的语法和使用一组 Transact-SQL 扩展的语法。</font></p>
<p><font face="Courier New"><strong>SQL-92 语法<br />
</strong>DECLARE cursor_name [ INSENSITIVE ] [ SCROLL ] CURSOR <br />
FOR select_statement <br />
[ FOR { READ ONLY | UPDATE [ OF column_name [ ,...n ] ] } ]</font></p>
<p><font face="Courier New">Transact-SQL 扩展语法<br />
DECLARE cursor_name CURSOR <br />
[ LOCAL | GLOBAL ] <br />
[ FORWARD_ONLY | SCROLL ] <br />
[ STATIC | KEYSET | DYNAMIC | FAST_FORWARD ] <br />
[ READ_ONLY | SCROLL_LOCKS | OPTIMISTIC ] <br />
[ TYPE_WARNING ] <br />
FOR select_statement <br />
[ FOR UPDATE [ OF column_name [ ,...n ] ] ]</font></p>
<p><font face="Courier New">SQL-92 参数<br />
cursor_name</font></p>
<p><font face="Courier New">是所定义的 Transact-SQL 服务器游标名称。cursor_name 必须遵从标识符规则。有关标识符规则的更多信息，请参见使用标识符。</font></p>
<p><font face="Courier New">INSENSITIVE</font></p>
<p><font face="Courier New">定义一个游标，以创建将由该游标使用的数据的临时复本。对游标的所有请求都从 tempdb 中的该临时表中得到应答；因此，在对该游标进行提取操作时返回的数据中不反映对基表所做的修改，并且该游标不允许修改。使用 SQL-92 语法时，如果省略 INSENSITIVE，（任何用户）对基表提交的删除和更新都反映在后面的提取中。</font></p>
<p><font face="Courier New">SCROLL</font></p>
<p><font face="Courier New">指定所有的提取选项（FIRST、LAST、PRIOR、NEXT、RELATIVE、ABSOLUTE）均可用。如果在 SQL-92 DECLARE CURSOR 中未指定 SCROLL，则 NEXT 是唯一支持的提取选项。如果指定 SCROLL，则不能也指定 FAST_FORWARD。</font></p>
<p><font face="Courier New">select_statement</font></p>
<p><font face="Courier New">是定义游标结果集的标准 SELECT 语句。在游标声明的 select_statement 内不允许使用关键字 COMPUTE、COMPUTE BY、FOR BROWSE 和 INTO。</font></p>
<p><font face="Courier New">如果 select_statement 中的子句与所请求的游标类型的功能发生冲突，则 Microsoft? SQL Server? 隐性地将游标转换为另一种类型。有关更多信息，请参见隐性游标转换。</font></p>
<p><font face="Courier New">READ ONLY</font></p>
<p><font face="Courier New">Prevents updates made through this cursor.在 UPDATE 或 DELETE 语句的 WHERE CURRENT OF 子句中不能引用游标。该选项替代要更新的游标的默认功能。</font></p>
<p><font face="Courier New">UPDATE [OF column_name [,...n]]</font></p>
<p><font face="Courier New">定义游标内可更新的列。如果指定 OF column_name [,...n] 参数，则只允许修改所列出的列。如果在 UPDATE 中未指定列的列表，则可以更新所有列。</font></p>
<p><font face="Courier New">Transact-SQL 扩展参数<br />
cursor_name</font></p>
<p><font face="Courier New">是所定义的 Transact-SQL 服务器游标名称。cursor_name 必须遵从标识符规则。有关标识符规则的更多信息，请参见使用标识符。</font></p>
<p><font face="Courier New">LOCAL</font></p>
<p><font face="Courier New">指定该游标的作用域对在其中创建它的批处理、存储过程或触发器是局部的。该游标名称仅在这个作用域内有效。在批处理、存储过程、触发器或存储过程 OUTPUT 参数中，该游标可由局部游标变量引用。OUTPUT 参数用于将局部游标传递回调用批处理、存储过程或触发器，它们可在存储过程终止后给游标变量指派参数使其引用游标。除非 OUTPUT 参数将游标传递回来，否则游标将在批处理、存储过程或触发器终止时隐性释放。如果 OUTPUT 参数将游标传递回来，游标在最后引用它的变量释放或离开作用域时释放。</font></p>
<p><font face="Courier New">GLOBAL</font></p>
<p><font face="Courier New">指定该游标的作用域对连接是全局的。在由连接执行的任何存储过程或批处理中，都可以引用该游标名称。该游标仅在脱接时隐性释放。</font></p>
<p><font face="Courier New"></font>&nbsp;</p>
<p><font face="Courier New">说明&nbsp; 如果 GLOBAL 和 LOCAL 参数都未指定，则默认值由 default to local cursor 数据库选项的设置控制。在 SQL Server 7.0 版中，该选项默认为 FALSE 以与 SQL Server 早期版本相匹配，在 SQL Server 早期版本中所有游标都是全局的。该选项的默认值在以后的 SQL Server 版本中可能会更改。有关更多信息，请参见设置数据库选项。</font></p>
<font face="Courier New">
<p><br />
FORWARD_ONLY</p>
<p>指定游标只能从第一行滚动到最后一行。FETCH NEXT 是唯一受支持的提取选项。如果在指定 FORWARD_ONLY 时不指定 STATIC、KEYSET 和 DYNAMIC 关键字，则游标作为 DYNAMIC 游标进行操作。如果 FORWARD_ONLY 和 SCROLL 均未指定，除非指定 STATIC、KEYSET 或 DYNAMIC 关键字，否则默认为 FORWARD_ONLY。STATIC、KEYSET 和 DYNAMIC 游标默认为 SCROLL。与 ODBC 和 ADO这类数据库 API 不同，STATIC、KEYSET 和 DYNAMIC Transact-SQL 游标支持 FORWARD_ONLY。FAST_FORWARD 和 FORWARD_ONLY 是互斥的；如果指定一个，则不能指定另一个。</p>
<p>STATIC</p>
<p>定义一个游标，以创建将由该游标使用的数据的临时复本。对游标的所有请求都从 tempdb 中的该临时表中得到应答；因此，在对该游标进行提取操作时返回的数据中不反映对基表所做的修改，并且该游标不允许修改。</p>
<p>KEYSET</p>
<p>指定当游标打开时，游标中行的成员资格和顺序已经固定。对行进行唯一标识的键集内置在 tempdb 内一个称为 keyset 的表中。对基表中的非键值所做的更改（由游标所有者更改或由其它用户提交）在用户滚动游标时是可视的。其他用户进行的插入是不可视的（不能通过 Transact-SQL 服务器游标进行插入）。如果某行已删除，则对该行的提取操作将返回 @@FETCH_STATUS 值 -2。从游标外更新键值类似于删除旧行后接着插入新行的操作。含有新值的行不可视，对含有旧值的行的提取操作将返回 @@FETCH_STATUS 值 -2。如果通过指定 WHERE CURRENT OF 子句用游标完成更新，则新值可视。</p>
<p>DYNAMIC</p>
<p>定义一个游标，以反映在滚动游标时对结果集内的行所做的所有数据更改。行的数据值、顺序和成员在每次提取时都会更改。动态游标不支持 ABSOLUTE 提取选项。</p>
<p>FAST_FORWARD</p>
<p>指定启用了性能优化的 FORWARD_ONLY、READ_ONLY 游标。如果指定 FAST_FORWARD，则不能也指定 SCROLL 或 FOR_UPDATE。FAST_FORWARD 和 FORWARD_ONLY 是互斥的；如果指定一个，则不能指定另一个。</p>
<p>READ_ONLY</p>
<p>禁止通过该游标进行更新。在 UPDATE 或 DELETE 语句的 WHERE CURRENT OF 子句中不能引用游标。该选项替代要更新的游标的默认功能。</p>
<p>SCROLL_LOCKS</p>
<p>指定确保通过游标完成的定位更新或定位删除可以成功。当将行读入游标以确保它们可用于以后的修改时，Microsoft? SQL Server? 会锁定这些行。如果还指定了 FAST_FORWARD，则不能指定 SCROLL_LOCKS。</p>
<p>OPTIMISTIC</p>
<p>指定如果行自从被读入游标以来已得到更新，则通过游标进行的定位更新或定位删除不成功。当将行读入游标时 SQL Server 不锁定行。相反，SQL Server 使用 timestamp 列值的比较，或者如果表没有 timestamp 列则使用校验值，以确定将行读入游标后是否已修改该行。如果已修改该行，尝试进行的定位更新或定位删除将失败。如果还指定了 FAST_FORWARD，则不能指定 OPTIMISTIC。</p>
<p>TYPE_WARNING</p>
<p>指定如果游标从所请求的类型隐性转换为另一种类型，则给客户端发送警告消息。</p>
<p>select_statement</p>
<p>是定义游标结果集的标准 SELECT 语句。在游标声明的 select_statement 内不允许使用关键字 COMPUTE、COMPUTE BY、FOR BROWSE 和 INTO。</p>
<p>如果 select_statement 内的子句与所请求的游标类型冲突，SQL Server 将游标隐性转换成另一种类型。有关更多信息，请参见隐性游标转换。</p>
<p>UPDATE [OF column_name [,...n]]</p>
<p>定义游标内可更新的列。如果提供了 OF column_name [,...n]，则只允许修改列出的列。如果在 UPDATE 中未指定列的列表，除非指定了 READ_ONLY 并发选项，否则所有列均可更新。</p>
<p>注释<br />
DECLARE CURSOR 定义 Transact-SQL 服务器游标的特性，例如游标的滚动行为和用于生成游标对其进行操作的结果集的查询。OPEN 语句填充结果集，FETCH 从结果集返回行。CLOSE 语句释放与游标关联的当前结果集。DEALLOCATE 语句释放游标所使用的资源。</p>
<p>DECLARE CURSOR 语句的第一种格式使用 SQL-92 语法声明游标行为。DECLARE CURSOR 的第二种格式使用 Transact-SQL 扩展，使您得以使用在 ODBC、ADO 和 DB-Library的数据库 API 游标函数中的相同游标类型定义游标。</p>
<p>不能混淆这两种格式。如果在 CURSOR 关键字的前面指定 SCROLL 或 INSENSITIVE 关键字，则不能在 CURSOR 和 FOR select_statement 关键字之间使用任何关键字。如果在 CURSOR 和 FOR select_statement 关键字之间指定任何关键字，则不能在 CURSOR 关键字的前面指定 SCROLL 或 INSENSITIVE。</p>
<p>如果使用 Transact-SQL 语法的 DECLARE CURSOR 不指定 READ_ONLY、OPTIMISTIC 或 SCROLL_LOCKS，则默认设置如下： </p>
<p>如果 SELECT 语句不支持更新（权限不够，访问的远程表不支持更新，等等），则游标是 READ_ONLY。</p>
<p><br />
STATIC 和FAST_FORWARD 游标默认为 READ_ONLY。</p>
<p><br />
DYNAMIC 和 KEYSET 游标默认为 OPTIMISTIC。 <br />
游标名称只能由其它 Transact-SQL 语句引用，不能由数据库 API 函数引用。例如，在声明游标后，不能从 OLE DB、ODBC、ADO 或 DB-Library 函数或方法引用游标名称。游标行不能通过 API 提取函数或方法提取，而只能由 Transact-SQL FETCH 语句提取。</p>
<p>在声明游标后，可使用下列系统存储过程确定游标的特性。</p>
<p>系统存储过程 描述 <br />
sp_cursor_list 返回当前在连接上可视的游标列表及其特性。 <br />
sp_describe_cursor 描述游标特性，比如是只进游标还是滚动游标。 <br />
sp_describe_cursor_columns 描述游标结果集中的列的特性。 <br />
sp_describe_cursor_tables 描述游标所访问的基表。 </p>
<p><br />
变量可作为声明游标的 select_statement 的一部分使用。然而，在游标声明之后对那些变量的更改将不会对游标的操作产生影响。</p>
<p>权限<br />
默认情况下，将 DECLARE CURSOR 权限授予对游标中所使用的视图、表和列有 SELECT 权限的任何用户。</p>
<p>示例<br />
A. 使用简单游标和语法<br />
打开该游标时所生成的结果集包括 pubs 数据库的 authors 表中的所有行和列。可以更新该游标，对该游标所做的所有更新和删除均在提取中表现出来。因为没指定 SCROLL 选项，FETCH NEXT 是唯一可用的提取选项。</p>
<p>DECLARE authors_cursor CURSOR<br />
&nbsp;&nbsp; FOR SELECT * FROM authors<br />
OPEN authors_cursor<br />
FETCH NEXT FROM authors_cursor</p>
<p>B. 使用嵌套游标生成报表输出<br />
下例显示如何嵌套游标以生成复杂的报表。为每个作者声明内部游标。</p>
<p>SET NOCOUNT ON</p>
<p>DECLARE @au_id varchar(11), @au_fname varchar(20), @au_lname varchar(40),<br />
&nbsp;&nbsp; @message varchar(80), @title varchar(80)</p>
<p>PRINT "-------- Utah Authors report --------"</p>
<p>DECLARE authors_cursor CURSOR FOR <br />
SELECT au_id, au_fname, au_lname<br />
FROM authors<br />
WHERE state = "UT"<br />
ORDER BY au_id</p>
<p>OPEN authors_cursor</p>
<p>FETCH NEXT FROM authors_cursor <br />
INTO @au_id, @au_fname, @au_lname</p>
<p>WHILE @@FETCH_STATUS = 0<br />
BEGIN<br />
&nbsp;&nbsp; PRINT " "<br />
&nbsp;&nbsp; SELECT @message = "----- Books by Author: " + <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; @au_fname + " " + @au_lname</p>
<p>&nbsp;&nbsp; PRINT @message</p>
<p>&nbsp;&nbsp; -- Declare an inner cursor based&nbsp;&nbsp; <br />
&nbsp;&nbsp; -- on au_id from the outer cursor.</p>
<p>&nbsp;&nbsp; DECLARE titles_cursor CURSOR FOR <br />
&nbsp;&nbsp; SELECT t.title<br />
&nbsp;&nbsp; FROM titleauthor ta, titles t<br />
&nbsp;&nbsp; WHERE ta.title_id = t.title_id AND<br />
&nbsp;&nbsp; ta.au_id = @au_id&nbsp;&nbsp; -- Variable value from the outer cursor</p>
<p>&nbsp;&nbsp; OPEN titles_cursor<br />
&nbsp;&nbsp; FETCH NEXT FROM titles_cursor INTO @title</p>
<p>&nbsp;&nbsp; IF @@FETCH_STATUS &lt;&gt; 0 <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PRINT "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;&lt;No Books&gt;&gt;"&nbsp;&nbsp;&nbsp;&nbsp; </p>
<p>&nbsp;&nbsp; WHILE @@FETCH_STATUS = 0<br />
&nbsp;&nbsp; BEGIN<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; SELECT @message = "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; " + @title<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; PRINT @message<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; FETCH NEXT FROM titles_cursor INTO @title<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp; END</p>
<p>&nbsp;&nbsp; CLOSE titles_cursor<br />
&nbsp;&nbsp; DEALLOCATE titles_cursor<br />
&nbsp;&nbsp; <br />
&nbsp;&nbsp; -- Get the next author.<br />
&nbsp;&nbsp; FETCH NEXT FROM authors_cursor <br />
&nbsp;&nbsp; INTO @au_id, @au_fname, @au_lname<br />
END</p>
<p>CLOSE authors_cursor<br />
DEALLOCATE authors_cursor<br />
GO</p>
<p>-------- Utah Authors report --------<br />
&nbsp;<br />
----- Books by Author: Anne Ringer<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; The Gourmet Microwave<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Is Anger the Enemy?<br />
&nbsp;<br />
----- Books by Author: Albert Ringer<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Is Anger the Enemy?<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Life Without Fear</p>
<p></font></p><img src ="http://www.blogjava.net/rain1102/aggbug/225220.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-08-28 11:06 <a href="http://www.blogjava.net/rain1102/archive/2008/08/28/225220.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL SERVER中直接循环写入数据</title><link>http://www.blogjava.net/rain1102/archive/2008/08/28/225202.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Thu, 28 Aug 2008 02:42:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2008/08/28/225202.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/225202.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2008/08/28/225202.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/225202.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/225202.html</trackback:ping><description><![CDATA[<p>declare @i int<br />
set @i = 1<br />
while @i &lt; 30<br />
begin<br />
&nbsp;&nbsp; insert into test (userid) values(@i)<br />
&nbsp;&nbsp; set @i = @i + 1<br />
end</p><img src ="http://www.blogjava.net/rain1102/aggbug/225202.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-08-28 10:42 <a href="http://www.blogjava.net/rain1102/archive/2008/08/28/225202.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL查询按照子串排序</title><link>http://www.blogjava.net/rain1102/archive/2008/07/16/215298.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Wed, 16 Jul 2008 12:09:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2008/07/16/215298.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/215298.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2008/07/16/215298.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/215298.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/215298.html</trackback:ping><description><![CDATA[比如, 返回名字和职位, 需要按照职位的后两个字符排序.<br />
在DB2, MySQL, Oracle和PostgreSQL中, order by子句中使用substr函数:<br />
&nbsp;&nbsp;&nbsp;&nbsp;select ename, job from emp order by substr(job, length(job)-2)<br />
在SQL Server中, order by子句中使用substring函数:<br />
&nbsp;&nbsp;&nbsp;&nbsp;select ename, job from emp order by substring(job, len(job)-2, 2)<br /><img src ="http://www.blogjava.net/rain1102/aggbug/215298.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-07-16 20:09 <a href="http://www.blogjava.net/rain1102/archive/2008/07/16/215298.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>限制返回的行数和从表中随机返回n条记录</title><link>http://www.blogjava.net/rain1102/archive/2008/07/15/215062.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Tue, 15 Jul 2008 12:50:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2008/07/15/215062.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/215062.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2008/07/15/215062.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/215062.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/215062.html</trackback:ping><description><![CDATA[<p>在DB2中, 使用FETCH FIRST子句限制返回行数:<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: red">select * from emp fetch first 5 rows only<br />
</span>使用RAND与ORDER BY和FETCH FIRST来获取随机条数<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000">select * from emp order by rand()&nbsp;fetch first 5 rows only<br />
</span><br />
在MySQL和PostgreSQL中, 使用LIMIT:<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #ff0000">select * from emp limit 5<br />
</span>MySQL中获取随机行数:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000">select * from emp order by rand()&nbsp;limit 5<br />
</span>PostgreSQL中获取随机行数:<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000">select * from emp order by random()&nbsp;limit 5<br />
</span><br />
在Oracle中, 在WHERE子句中通过使用ROWNUM来限制行数:<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #ff0000">select * from emp where rownum &lt;= 5<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000">select *<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;from (<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;select ename, job from emp order by dbms_random.value()<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)<br />
&nbsp;&nbsp;&nbsp;&nbsp;where rownum &lt;= 5<br />
</span>在SQL Server中, 使用TOP来限制返回行数:<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #ff0000">select top 5 * from emp<br />
</span>&nbsp;&nbsp;&nbsp;&nbsp;<br />
&nbsp;&nbsp;&nbsp;&nbsp;<span style="color: #008000">select top 5 ename, job from emp order by newid()</span></p><img src ="http://www.blogjava.net/rain1102/aggbug/215062.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-07-15 20:50 <a href="http://www.blogjava.net/rain1102/archive/2008/07/15/215062.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL中连接列值和在SELECT语句中使用条件逻辑</title><link>http://www.blogjava.net/rain1102/archive/2008/07/14/214821.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Mon, 14 Jul 2008 13:16:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2008/07/14/214821.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/214821.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2008/07/14/214821.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/214821.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/214821.html</trackback:ping><description><![CDATA[1连接列值<br />
使用concat函数连接来自多个列的数值. 在DB2, Oracle和PostgreSQL中,"||"是concat函数的简写方式,"+"是SQL Server中的简写方式.<br />
select <span style="color: #008000">name||' is a '||type</span> as msg from animal where ...<br />
select <span style="color: #008000">name+' is a '+type </span>as msg from animal where...<br />
select <span style="color: #008000">concat(name, ' is a ', type) </span>as msg from animal where ...<br />
<br />
2.在SELECT语句中使用条件逻辑<br />
case表达式可以针对查询的返回值执行条件逻辑. 可以给case表达式取别名, 使结果集更易读. else子句是可选的, 如果没有使用else, 对于不满足判断条件的行, case表达式会返回NULL.<br />
select ename, sal,<br />
&nbsp;&nbsp;<span style="color: #008000">&nbsp;case when sal&lt;=2000 then 'UNDERPAID'<br />
&nbsp;&nbsp; case when sal&gt;=4000 then 'OVERPAID'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else 'OK'<br />
&nbsp;&nbsp; end as status<br />
</span>from emp<img src ="http://www.blogjava.net/rain1102/aggbug/214821.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-07-14 21:16 <a href="http://www.blogjava.net/rain1102/archive/2008/07/14/214821.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL Server修改表</title><link>http://www.blogjava.net/rain1102/archive/2008/06/18/208797.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Wed, 18 Jun 2008 02:44:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2008/06/18/208797.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/208797.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2008/06/18/208797.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/208797.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/208797.html</trackback:ping><description><![CDATA[IF NOT EXISTS (SELECT * FROM syscolumns WHERE id=object_id('Book') AND name='createDate')&nbsp; <br />
ALTER TABLE&nbsp;Book ADD createDate datetime NOT NULL<br />
GO<br />
<br />
首先要判断表中是否存在该字段,如果不存在再添加或者修改该字段.<img src ="http://www.blogjava.net/rain1102/aggbug/208797.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-06-18 10:44 <a href="http://www.blogjava.net/rain1102/archive/2008/06/18/208797.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>维护SQL Server数据库的一些常用SQL(转)</title><link>http://www.blogjava.net/rain1102/archive/2008/05/13/200246.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Tue, 13 May 2008 09:15:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2008/05/13/200246.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/200246.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2008/05/13/200246.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/200246.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/200246.html</trackback:ping><description><![CDATA[<p>1.如何创建数据库</p>
<p>CREATE DATABASE student</p>
<p>2.如何删除数据库</p>
<p>DROP DATABASE student</p>
<p>3.如何备份数据库到磁盘文件</p>
<p>BACKUP DATABASE student to disk=&#180;c:\1234.bak&#180;</p>
<p>4.如何从磁盘文件还原数据库</p>
<p>RESTORE DATABASE studnet FROM DISK = &#180;c:\1234.bak&#180;</p>
<p>5.怎样创建表？</p>
<p>CREATE TABLE Students (<br />
&nbsp;&nbsp;&nbsp; ID int IDENTITY ( 1, 1), --自增字段,基数1,步长1<br />
&nbsp;&nbsp;&nbsp; StudentID char (4) NOT NULL ,<br />
&nbsp;&nbsp;&nbsp; Name char (10) NOT NULL ,<br />
&nbsp;&nbsp;&nbsp; Age int NULL ,<br />
&nbsp;&nbsp;&nbsp; Birthday datetime NULL,<br />
&nbsp;&nbsp;&nbsp; CONSTRAINT PK_Students PRIMARY KEY (StudentID)&nbsp; --设置主键<br />
)</p>
<p>CREATE TABLE Subjects (<br />
&nbsp;&nbsp;&nbsp; ID int IDENTITY ( 1, 1), --自增字段,基数1,步长1<br />
&nbsp;&nbsp;&nbsp; ClassID char (4) NOT NULL ,<br />
&nbsp;&nbsp;&nbsp; ClassName char (10) NOT NULL,<br />
&nbsp;&nbsp;&nbsp; CONSTRAINT PK_Subjects PRIMARY KEY (ClassID)&nbsp;&nbsp;&nbsp; --设置主键<br />
)</p>
<p>CREATE TABLE Scores (<br />
&nbsp;&nbsp;&nbsp; ID int IDENTITY ( 1, 1), --自增字段,基数1,步长1<br />
&nbsp;&nbsp;&nbsp; StudentID char (4) NOT NULL ,<br />
&nbsp;&nbsp;&nbsp; ClassID char (4) NOT NULL ,<br />
&nbsp;&nbsp;&nbsp; Score float NOT NULL, <br />
&nbsp;&nbsp;&nbsp; CONSTRAINT FK_Scores_Students FOREIGN KEY (StudentID) REFERENCES Students(StudentID), --设置外键<br />
&nbsp;&nbsp;&nbsp; CONSTRAINT FK_Scores_Subjects FOREIGN KEY (ClassID) REFERENCES Subjects(ClassID), --设置外键<br />
&nbsp;&nbsp;&nbsp; CONSTRAINT PK_Scores PRIMARY KEY (StudentID,ClassID) --设置主键<br />
)</p>
<p>6.怎样删除表？</p>
<p>DROP TABLE Students </p>
<p>7.怎样创建视图？</p>
<p>CREATE VIEW s_s_s<br />
AS<br />
SELECT Students.Name, Subjects.ClassName, Scores.Score<br />
FROM Scores INNER JOIN<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Students ON Scores.StudentID = Students.StudentID INNER JOIN<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Subjects ON Scores.ClassID = Subjects.ClassID</p>
<p><br />
8.怎样删除视图？</p>
<p>DROP VIEW s_s_s</p>
<p>9.如何创建存储过程?</p>
<p>CREATE PROCEDURE GetStudent<br />
@age INT,<br />
@birthday DATETIME<br />
AS<br />
SELECT *<br />
FROM students<br />
WHERE Age = @age AND Birthday = @birthday<br />
GO</p>
<p>10.如何删除存储过程?</p>
<p>DROP PROCEDURE GetStudent</p>
<p>11.如何创建触发器?</p>
<p>CREATE TRIGGER reminder<br />
ON Students<br />
FOR INSERT, UPDATE, DELETE <br />
AS<br />
&nbsp;&nbsp; EXEC master..xp_sendmail &#180;MaryM&#180;, <br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &#180;Don&#180;&#180;t forget to print a report for the distributors.&#180;<br />
GO</p>
<p>12.如何删除触发器?</p>
<p>DROP TRIGGER reminder</p>
<p>13.如何创建索引?</p>
<p>CREATE UNIQUE INDEX IX_Students ON Students (Name)</p>
<p>14.如何删除索引?</p>
<p>DROP INDEX Students.IX_Students</p>
<p>15.怎样给表添加字段？</p>
<p>ALTER TABLE Students ADD Address varchar (50) NULL</p>
<p>16.怎样删除表中某个字段？</p>
<p>ALTER TABLE Students DROP COLUMN Address</p>
<p>17.如何设置列的标识属性?</p>
<p>没找到办法</p>
<p>18.如何去掉列的标识属性?</p>
<p>没有找到好的方法,只能是先添加一列,然后把标识列的值更新到新加入的列,删除标识列,再用与标识列相同的名字类型添加一列,用前面加入的列更新该列.如果该标识列是其他表的外键,还要先删除外键约束,很麻烦.谁有好的办法,还请告诉我.</p>
<p>19.如何重设标识列的标识种子?</p>
<p>DBCC CHECKIDENT (Student, RESEED, 1)</p>
<p>20.怎样给表加上主键？</p>
<p>ALTER TABLE Scores ADD CONSTRAINT PK_Scores PRIMARY KEY (StudentID,ClassID)</p>
<p>21.怎样删除表的主键？</p>
<p>ALTER TABLE Scores DROP CONSTRAINT PK_Scores</p>
<p>22.怎样给表添加一个外键？</p>
<p>ALTER TABLE Scores ADD CONSTRAINT FK_Scores_Students FOREIGN KEY (StudentID) REFERENCES Students (StudentID) ON DELETE CASCADE</p>
<p>23.怎样删除表的一个外键？</p>
<p>ALTER TABLE Scores DROP CONSTRAINT FK_Scores_Students</p>
<p>24.怎样给字段加上CHECK约束？</p>
<p>ALTER TABLE Students ADD CONSTRAINT CK_Students CHECK (Age &gt; 0)</p>
<p>25.怎样去掉字段上的CHECK约束？</p>
<p>ALTER TABLE Students DROP CONSTRAINT CK_Students </p>
<p>26.怎样给字段设置默认值？</p>
<p>ALTER TABLE Students ADD CONSTRAINT DF_Students_Age DEFAULT (18) FOR Age</p>
<p>27.怎样移去字段的默认值？</p>
<p>ALTER TABLE Students DROP CONSTRAINT DF_Students_Age</p>
<p>28.修改字段的类型及非空约束</p>
<p>ALTER TABLE Students ALTER COLUMN Age char (10) null<br />
ALTER TABLE Students ALTER COLUMN Age int not null </p><img src ="http://www.blogjava.net/rain1102/aggbug/200246.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-05-13 17:15 <a href="http://www.blogjava.net/rain1102/archive/2008/05/13/200246.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SET XACT_ABORT</title><link>http://www.blogjava.net/rain1102/archive/2008/05/06/198683.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Tue, 06 May 2008 05:29:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2008/05/06/198683.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/198683.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2008/05/06/198683.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/198683.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/198683.html</trackback:ping><description><![CDATA[<h1><a name="_set_xact_abort"></a>SET XACT_ABORT</h1>
<p>指定当 Transact-SQL 语句产生运行时错误时，Microsoft&#174; SQL Server&#8482; 是否自动回滚当前事务。</p>
<h5>语法</h5>
<p>SET XACT_ABORT { ON | OFF }</p>
<h5>注释</h5>
<p>当 SET XACT_ABORT 为 ON 时，如果 Transact-SQL 语句产生运行时错误，整个事务将终止并回滚。为 OFF 时，只回滚产生错误的 Transact-SQL 语句，而事务将继续进行处理。编译错误（如语法错误）不受 SET XACT_ABORT 的影响。</p>
<p>对于大多数 OLE DB 提供程序（包括 SQL Server），隐性或显式事务中的数据修改语句必须将 XACT_ABORT 设置为 ON。唯一不需要该选项的情况是提供程序支持嵌套事务时。有关更多信息，请参见<a href="javascript:hhobj_1.Click()">分布式查询</a>和<a href="javascript:hhobj_2.Click()">分布式事务</a>。 </p>
<p>SET XACT_ABORT 的设置是在执行或运行时设置，而不是在分析时设置。</p>
<h5>示例</h5>
<p>下例导致在含有其它 Transact-SQL 语句的事务中发生违反外键错误。在第一个语句集中产生错误，但其它语句均成功执行且事务成功提交。在第二个语句集中，SET XACT_ABORT 设置为 ON。这导致语句错误使批处理终止，并使事务回滚。 </p>
<pre><code>CREATE TABLE t1 (a int PRIMARY KEY)
CREATE TABLE t2 (a int REFERENCES t1(a))
GO
INSERT INTO t1 VALUES (1)
INSERT INTO t1 VALUES (3)
INSERT INTO t1 VALUES (4)
INSERT INTO t1 VALUES (6)
GO
SET XACT_ABORT OFF
GO
BEGIN TRAN
INSERT INTO t2 VALUES (1)
INSERT INTO t2 VALUES (2) /* Foreign key error */
INSERT INTO t2 VALUES (3)
COMMIT TRAN
GO
SET XACT_ABORT ON
GO
BEGIN TRAN
INSERT INTO t2 VALUES (4)
INSERT INTO t2 VALUES (5) /* Foreign key error */
INSERT INTO t2 VALUES (6)
COMMIT TRAN
GO
/* Select shows only keys 1 and 3 added.
Key 2 insert failed and was rolled back, but
XACT_ABORT was OFF and rest of transaction
succeeded.
Key 5 insert error with XACT_ABORT ON caused
all of the second transaction to roll back. */
SELECT *
FROM t2
GO
DROP TABLE t2
DROP TABLE t1
GO
</code></pre><img src ="http://www.blogjava.net/rain1102/aggbug/198683.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-05-06 13:29 <a href="http://www.blogjava.net/rain1102/archive/2008/05/06/198683.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL Server  不支持change修改表字段</title><link>http://www.blogjava.net/rain1102/archive/2008/04/17/193713.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Thu, 17 Apr 2008 04:53:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2008/04/17/193713.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/193713.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2008/04/17/193713.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/193713.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/193713.html</trackback:ping><description><![CDATA[今天遇到一个问题，就是需要修改表字段名，要是别的数据库还好处理，直接用change就可以了：<br />
<span style="color: red">alter table users change column name username varchar(50)<br />
</span>但SQL Server不支持此命令。<br />
所以只能用存储过程了：<br />
比如我要修改user表里面的name，改为username，则可以用<br />
<span style="color: #008000">exec sp_rename 'users.name','username','column'</span><img src ="http://www.blogjava.net/rain1102/aggbug/193713.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2008-04-17 12:53 <a href="http://www.blogjava.net/rain1102/archive/2008/04/17/193713.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>判断sql执行所花的时间（精度为毫秒）</title><link>http://www.blogjava.net/rain1102/archive/2007/09/28/149059.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Fri, 28 Sep 2007 05:02:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2007/09/28/149059.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/149059.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2007/09/28/149059.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/149059.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/149059.html</trackback:ping><description><![CDATA[<span style="color: #0000ff">DECLARE </span><span style="color: #008000">@begin</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #000000">datetime</span><span style="color: #000000"><br />
</span><span style="color: #0000ff"><span style="color: #0000ff">DECLARE </span></span><span style="color: #008000">@chaju</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #000000">bigint</span><span style="color: #000000"><br />
</span><span style="color: #0000ff"><span style="color: #0000ff">DECLARE </span></span><span style="color: #008000">@end</span><span style="color: #000000">&nbsp;</span><span style="font-weight: bold; color: #000000">datetime</span><span style="color: #000000"><br />
</span><span style="color: #0000ff">SET </span><span style="color: #008000">@begin</span><span style="color: #808080">=</span><span style="color: #ff00ff">getdate</span><span style="color: #000000">()<br />
</span><span style="color: #000000"><font color="#0000ff"><br />
</font>要执行的sql语句......<br />
<br />
</span><span style="color: #0000ff"><span style="color: #0000ff">SET </span></span><span style="color: #008000">@end</span><span style="color: #808080">=</span><span style="color: #ff00ff">getdate</span><span style="color: #000000">()&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
</span><span style="color: #0000ff"><span style="color: #0000ff">SELECT</span><span style="color: #000000">&nbsp;</span></span><span style="color: #008000">@chaju</span><span style="color: #000000">&nbsp;</span><span style="color: #808080">=</span><span style="color: #000000">&nbsp;</span><span style="color: #ff00ff">datediff</span><span style="color: #000000">(Millisecond,&nbsp;</span><span style="color: #008000">@begin</span><span style="color: #000000">,&nbsp;</span><span style="color: #008000">@end</span><span style="color: #000000">)<br />
</span><span style="color: #0000ff">PRINT </span><span style="color: #008000">@chaju<span style="color: #000000">&nbsp;</span></span><img src ="http://www.blogjava.net/rain1102/aggbug/149059.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2007-09-28 13:02 <a href="http://www.blogjava.net/rain1102/archive/2007/09/28/149059.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据库驱动程序和URL </title><link>http://www.blogjava.net/rain1102/archive/2007/01/19/94911.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Fri, 19 Jan 2007 05:05:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2007/01/19/94911.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/94911.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2007/01/19/94911.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/94911.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/94911.html</trackback:ping><description><![CDATA[数据库名 <br />驱动程序 <br />URL <br /><br /><font color="#006400">MS SQL Server2000</font><br />com.microsoft.jdbc.sqlserver.SQLServerDriver <br />jdbc:microsoft:sqlserver://[ip]:[port];user=[user];passwoerd=[password] <br /><br /><font color="#006400">JDBC-ODBC</font><br />sun.jdbc.odbc.JdbcOdbcDriver <br />jdbc:odbc:[odbcsource] <br /><br /><font color="#006400">Oracle oci8 <br /></font>oracle.jdbc.driver.OracleDriver <br />jdbc:oracle:oci8:@[sid] <br /><br /><font color="#006400">Oracle thin Driver</font><br />oracle.jdbc.driver.OracleDriver <br />jdbc:oracle:thin:@[ip]:[port]:[sid] <br /><br /><font color="#006400">Cloudscape</font><br />COM.cloudscape.core.JDBCDriver <br />Jdbc:cloudscape:database <br /><br /><font color="#006400">MySQL</font><br />org.git.mm.mysql.Driver <br />jdbc:mysql://ip/database?user=?&amp;password=? <br /><img src ="http://www.blogjava.net/rain1102/aggbug/94911.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2007-01-19 13:05 <a href="http://www.blogjava.net/rain1102/archive/2007/01/19/94911.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL语句</title><link>http://www.blogjava.net/rain1102/archive/2006/11/23/82935.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Thu, 23 Nov 2006 01:08:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2006/11/23/82935.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/82935.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2006/11/23/82935.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/82935.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/82935.html</trackback:ping><description><![CDATA[<font color="#006400">1.</font>
		<span style="FONT-SIZE: 12.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: '&#xB;'; mso-hansi-font-family: '&#xB;'; mso-bidi-font-family: Arial; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">
				<strong>
						<font color="#006400">删除表的重复记录<br /></font>&#160;</strong>
				<span style="FONT-SIZE: 12.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: '&#xB;'; mso-hansi-font-family: '&#xB;'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">如果记录完全相同才算重复记录</span>
				<span lang="EN-US" style="FONT-SIZE: 12.5pt; FONT-FAMILY: '&#xB;'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">
						<font face="宋体, MS Song">,</font>
				</span>
				<span style="FONT-SIZE: 12.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: '&#xB;'; mso-hansi-font-family: '&#xB;'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">那么</span>
				<span lang="EN-US" style="FONT-SIZE: 12.5pt; FONT-FAMILY: '&#xB;'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">
						<font face="宋体, MS Song">: (sql server2000</font>
				</span>
				<span style="FONT-SIZE: 12.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: '&#xB;'; mso-hansi-font-family: '&#xB;'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">下测试通过</span>
				<span lang="EN-US" style="FONT-SIZE: 12.5pt; FONT-FAMILY: '&#xB;'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">
						<font face="宋体, MS Song">)</font>
				</span>
				<br />
				<strong>&#160;<font color="#006400">select distinct</font> * <font color="#006400">into</font> #tmpp <font color="#006400">from</font> person<br />&#160;<font color="#006400">delete from</font> person<br />&#160;<font color="#006400">insert into</font> person <font color="#006400">select</font> * <font color="#006400">from</font> #tmpp<br />&#160;<font color="#006400">drop table</font> #tmpp<br />&#160;</strong>
				<span style="FONT-SIZE: 12.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: '&#xB;'; mso-hansi-font-family: '&#xB;'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">如果有</span>
				<span lang="EN-US" style="FONT-SIZE: 12.5pt; FONT-FAMILY: '&#xB;'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">
						<font face="宋体, MS Song">id</font>
				</span>
				<span style="FONT-SIZE: 12.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: '&#xB;'; mso-hansi-font-family: '&#xB;'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">主键</span>
				<span lang="EN-US" style="FONT-SIZE: 12.5pt; FONT-FAMILY: '&#xB;'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">
						<font face="宋体, MS Song">(</font>
				</span>
				<span style="FONT-SIZE: 12.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: '&#xB;'; mso-hansi-font-family: '&#xB;'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">数字</span>
				<span lang="EN-US" style="FONT-SIZE: 12.5pt; FONT-FAMILY: '&#xB;'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">
						<font face="宋体, MS Song">,</font>
				</span>
				<span style="FONT-SIZE: 12.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: '&#xB;'; mso-hansi-font-family: '&#xB;'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">自增</span>
				<span lang="EN-US" style="FONT-SIZE: 12.5pt; FONT-FAMILY: '&#xB;'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">
						<font face="宋体, MS Song">1</font>
				</span>
				<span style="FONT-SIZE: 12.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: '&#xB;'; mso-hansi-font-family: '&#xB;'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">的那种</span>
				<span lang="EN-US" style="FONT-SIZE: 12.5pt; FONT-FAMILY: '&#xB;'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">
						<font face="宋体, MS Song">),</font>
				</span>
				<span style="FONT-SIZE: 12.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: '&#xB;'; mso-hansi-font-family: '&#xB;'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">那么</span>
				<span lang="EN-US" style="FONT-SIZE: 12.5pt; FONT-FAMILY: '&#xB;'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">
						<font face="宋体, MS Song">:(sql server2000</font>
				</span>
				<span style="FONT-SIZE: 12.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: '&#xB;'; mso-hansi-font-family: '&#xB;'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA">下测试通过</span>
				<span lang="EN-US" style="FONT-SIZE: 12.5pt; FONT-FAMILY: '&#xB;'; mso-bidi-font-family: 'Times New Roman'; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA; mso-fareast-font-family: 宋体">
						<font face="宋体, MS Song">)<br />&#160;<font color="#006400">delete from</font> person <font color="#006400">where</font> id <font color="#ee82ee">not in<br /></font>&#160;(<font color="#006400">select</font> id=<font color="#006400">min</font>(id) <font color="#006400">from</font> person <font color="#006400">group by</font> UserName)<br /><font color="#006400"><strong>2.复制表（并且复制记录）</strong></font><font color="#006400"><br /></font><strong>&#160; <font color="#006400">select</font> * <font color="#006400">into</font> persontwo <font color="#006400">from</font> person（只复制表结构）<br />&#160; <font color="#006400">insert into</font> persontwo <font color="#006400">select</font> UserName,Address,Content <font color="#006400">from</font> person（插入记录）<br />3.获取表中最小未使用的ID<br /></strong>&#160; <font color="#006400">SELECT (CASE WHEN EXISTS(SELECT * FROM person b WHERE b.Id = 1) THEN MIN(Id) + 1 ELSE 1 END) as Id <br />&#160;FROM&#160; person <br />&#160;WHERE NOT Id IN (SELECT a.Id - 1 FROM person a)<br /></font><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><font color="#006400"><strong><span lang="EN-US" style="FONT-SIZE: 12.5pt; FONT-FAMILY: '&#xB;'; mso-bidi-font-family: Arial"><font face="Times New Roman">4.delete from tablea &amp; truncate table tablea</font></span></strong><strong><span style="FONT-SIZE: 12.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: '&#xB;'; mso-hansi-font-family: '&#xB;'; mso-bidi-font-family: Arial">的区别</span></strong></font><span lang="EN-US" style="FONT-SIZE: 12.5pt; FONT-FAMILY: '&#xB;'"><?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?><o:p></o:p></span></p><p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt"><span lang="EN-US" style="FONT-SIZE: 12.5pt; FONT-FAMILY: '&#xB;'"><font face="Times New Roman">&#160;&#160;<font color="#006400"></font></font></span><span lang="EN-US" style="FONT-SIZE: 12.5pt; FONT-FAMILY: '&#xB;'"><font face="Times New Roman"><font color="#006400">truncate</font></font></span><span style="FONT-SIZE: 12.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: '&#xB;'; mso-hansi-font-family: '&#xB;'">语句执行速度快</span><span lang="EN-US" style="FONT-SIZE: 12.5pt; FONT-FAMILY: '&#xB;'"><font face="Times New Roman">,</font></span><span style="FONT-SIZE: 12.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: '&#xB;'; mso-hansi-font-family: '&#xB;'">占资源少</span><span lang="EN-US" style="FONT-SIZE: 12.5pt; FONT-FAMILY: '&#xB;'"><font face="Times New Roman">,</font></span><span style="FONT-SIZE: 12.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: '&#xB;'; mso-hansi-font-family: '&#xB;'">并且只记录页删除的日志；</span><span lang="EN-US" style="FONT-SIZE: 12.5pt; FONT-FAMILY: '&#xB;'"><br /></span><span lang="EN-US" style="FONT-SIZE: 12.5pt; FONT-FAMILY: '&#xB;'"><font face="Times New Roman"><font face="宋体">&#160;</font><font color="#006400">delete</font></font></span><span style="FONT-SIZE: 12.5pt; FONT-FAMILY: 宋体; mso-ascii-font-family: '&#xB;'; mso-hansi-font-family: '&#xB;'">对每条记录的删除均需要记录日志</span><span lang="EN-US" style="FONT-SIZE: 12.5pt; FONT-FAMILY: '&#xB;'"><o:p></o:p></span></p></font>
				</span>
		</span><img src ="http://www.blogjava.net/rain1102/aggbug/82935.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2006-11-23 09:08 <a href="http://www.blogjava.net/rain1102/archive/2006/11/23/82935.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>连接SQL Server和Oracle</title><link>http://www.blogjava.net/rain1102/archive/2006/11/17/81719.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Fri, 17 Nov 2006 03:06:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2006/11/17/81719.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/81719.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2006/11/17/81719.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/81719.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/81719.html</trackback:ping><description><![CDATA[<p>Oracle<br />url=jdbc:oracle:thin:@192.168.1.110:1521:zhongxin<br />driver=oracle.jdbc.driver.OracleDriver<br />username=xxb<br />password=xxb</p>
		<p>SQLServer<br />url=jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=hagov<br />drive=com.microsoft.jdbc.sqlserver.SQLServerDriver<br />username=sa<br />password=sa<br />dialect=org.hibernate.dialect.SQLServerDialect</p><img src ="http://www.blogjava.net/rain1102/aggbug/81719.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2006-11-17 11:06 <a href="http://www.blogjava.net/rain1102/archive/2006/11/17/81719.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Java中连接数据库（SQL Server）Database类</title><link>http://www.blogjava.net/rain1102/archive/2006/10/18/75879.html</link><dc:creator>Eric.Zhou</dc:creator><author>Eric.Zhou</author><pubDate>Wed, 18 Oct 2006 05:31:00 GMT</pubDate><guid>http://www.blogjava.net/rain1102/archive/2006/10/18/75879.html</guid><wfw:comment>http://www.blogjava.net/rain1102/comments/75879.html</wfw:comment><comments>http://www.blogjava.net/rain1102/archive/2006/10/18/75879.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/rain1102/comments/commentRss/75879.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/rain1102/services/trackbacks/75879.html</trackback:ping><description><![CDATA[<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">Database</span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">类</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /?>
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">import <a title="Java爱好者" href="http://www.blogjava.net/rain1102" >Java</a>.sql.Connection;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">import <a title="Java爱好者" href="http://www.blogjava.net/rain1102" >Java</a>.sql.ResultSet;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">import <a title="Java爱好者" href="http://www.blogjava.net/rain1102" >Java</a>.sql.Statement;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">import <a title="Java爱好者" href="http://www.blogjava.net/rain1102" >Java</a>.sql.SQLException;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">import javax.naming.Context;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">import javax.naming.InitialContext;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">import javax.sql.DataSource;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">&#160;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">public class Database<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">{<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">private Connection m_conn=null;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">private Statement m_stmt=null;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">private boolean isAutoCommit;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">&#160;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">public Database() throws Exception<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">{<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160; </span>try<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160; </span>{<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24.75pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>Context initCtx=new InitialContext();<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24.75pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>Context envCtx=(Context)initCtx.lookup(&#8220;java:comp/env&#8221;);<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24.75pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>DataSource ds=(DataSource)envCtx.lookup(&#8220;jdbc/SqlServer&#8221;);<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24.75pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160; </span>m_conn=ds.getConnection();<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24.75pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160; </span>initCtx.close();<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24.75pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160; </span>envCtx.close();<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24.75pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">}<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24.75pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">catch(Exception ex)<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24.75pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">{<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24.75pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160;&#160; </span>ex..printStackTrace();<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24.75pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160;&#160; </span>System.out.println(&#8220;Create Connection Error!&#8221;);<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24.75pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160;&#160; </span>throw ex;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 24.75pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">}<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">}<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">&#160;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">public void close()<span style="mso-spacerun: yes">&#160; </span>throws SQLException<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">{<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>try<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>{<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt; tab-stops: 36.0pt 45.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>if(m_stmt !=null) m_stmt.close();<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>if(m_conn !=null) m_conn.close();<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 31.5pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">}<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 31.5pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">catch(SQLException ex)<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 31.5pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">{<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 31.5pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>ex.printStackTrace();<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 31.5pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>System.out.println(&#8220;Close Connection Error!&#8221;);<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 31.5pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>throw ex;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 31.5pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">}<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">}<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">&#160;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">public ResultSet executeQuery1(String sql) throws SQLException<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">{<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160;&#160; </span>try<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">{<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160; </span>m_stmt=m_conn.CreateStatement();<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160; </span>return m_stmt.executeQuery(sql);<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">}<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">catch(SQLException ex)<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">{<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>ex.printStackTrace();<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>System.out.println(&#8220;Execute SQL:&#8217;&#8221;+sql+&#8221;&#8217; Error!&#8217;&#8221;);<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>System.out.println(ex.toString());<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>System.out.println(ex.getMessage());<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>throw ex;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">}<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">}<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">&#160;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">public ResultSet executeQuery2(String sql) throws SQLException<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">{<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>try<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">{<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160; </span>m_stmt=m_conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 192.75pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">ResultSet.CONCUR_READ_ONLY);<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>return m_stmt..executeQuery(sql);<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">}<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">catch(SQLException ex)<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">{<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>ex.printStackTrace();<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>System.out.println(&#8220;Execute SQL:&#8217;&#8221;+sql+&#8221;&#8217; Error!&#8217;&#8221;);<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>System.out.println(ex.toString());<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>System.out.println(ex.getMessage());<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>throw ex;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">}<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">}<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">&#160;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">public int executeUpdate(String sql) throws SQLException<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">{<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160; </span>try<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">{<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160; </span>Statement stmt=m_conn.createStatment();<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160; </span>int rt=stmt.executeUpdate(sql);<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160; </span>stmt.close();<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160; </span>return rt;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">}<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">catch(SQLException ex)<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">{<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>ex.printStackTrace();<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>System.out.println(&#8220;Execute SQL:&#8217;&#8221;+sql+&#8221;&#8217; Error!&#8217;&#8221;);<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>System.out.println(ex.toString());<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>System.out.println(ex.getMessage());<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>throw ex;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">}<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">}<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">//</span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">开始新事务</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">public void beginTrans() throws SQLException<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span><o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">{<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160;&#160; </span>try<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">{<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>isAutoCommit=m_conn.getAutoCommit(); //</span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">获得当前自动提交状态</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>m_conn.setAutoCommit(false);// </span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">禁止自动提交</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">}<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">catch(SQLException ex)<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">{<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>ex.printStackTrace();<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>System.out.println("BeginTrans Error!");<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>throw ex;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">}<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">}<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">//</span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">保存任何更改并结束当前事务。它也可能启动新事务</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">public void commitTrans() throws SQLException<span style="mso-spacerun: yes">&#160; </span><o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt; tab-stops: 18.0pt">
				<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" /?>
				<v:rect id="_x0000_s1026" style="MARGIN-TOP: 8.55pt; Z-INDEX: 1; MARGIN-LEFT: 270pt; WIDTH: 198pt; POSITION: absolute; HEIGHT: 54pt">
						<span style="Z-INDEX: 1; WIDTH: 335px; POSITION: absolute; HEIGHT: 59px">
								<table cellspacing="0" cellpadding="0" width="100%">
										<tbody>
												<tr>
														<td style="BORDER-RIGHT: #d4d0c8; BORDER-TOP: #d4d0c8; BORDER-LEFT: #d4d0c8; BORDER-BOTTOM: #d4d0c8; BACKGROUND-COLOR: transparent">
																<div class="shape" style="PADDING-RIGHT: 7.2pt; PADDING-LEFT: 7.2pt; PADDING-BOTTOM: 3.6pt; PADDING-TOP: 3.6pt" v:shape="_x0000_s1026">
																		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
																				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">commit()</span>
																				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">提交从上一次提交</span>
																				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt"> / </span>
																				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">回滚操作后的更改，使之成为永久的更改，并释放</span>
																				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">Connection </span>
																				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">当前保持的任何数据库锁。</span>
																				<span style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
																				</span>
																				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-bidi-font-size: 12.0pt; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">只有当禁止自动提交时可以使用该方法。</span>
																				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
																						<o:p>
																						</o:p>
																				</span>
																		</p>
																</div>
														</td>
												</tr>
										</tbody>
								</table>
						</span>
				</v:rect>
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">{</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160;&#160; </span>try<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">{</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160;&#160; </span>m_conn.commit();<span style="mso-spacerun: yes">&#160; </span><o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt; tab-stops: 18.0pt 45.0pt 54.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>m_conn.setAutoCommit(isAutoCommit);<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">}<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">catch(SQLException ex)<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">{<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>ex.printStackTrace();<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>System.out.println("CommitTrans Error!");<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>throw ex;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">}<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">}<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">//</span>
				<span style="FONT-SIZE: 9pt; FONT-FAMILY: 宋体; mso-ascii-font-family: 'Times New Roman'; mso-hansi-font-family: 'Times New Roman'">取消当前事务中所作的任何更改并结束事务。它也可能启动新事务。</span>
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<o:p>
						</o:p>
				</span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">public void rollbackTrans() throws SQLException<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">{<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160;&#160;&#160; </span>try<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">{<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>m_conn.rollback();<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>m_conn.setAutoCommit(isAutoCommit);<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">}<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">catch(SQLException ex)<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">{<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;</span>
						<span style="mso-spacerun: yes">&#160;&#160;&#160; </span>ex.printStackTrace();<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>System.out.println("RollbackTrans Error!");<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">
						<span style="mso-spacerun: yes">&#160;&#160;&#160;&#160; </span>throw ex;<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 35.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">}<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt; TEXT-INDENT: 14.25pt; tab-stops: 18.0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">}<o:p></o:p></span>
		</p>
		<p class="MsoNormal" style="MARGIN: 0cm 0cm 0pt">
				<span lang="EN-US" style="FONT-SIZE: 9pt; mso-bidi-font-size: 12.0pt">}<o:p></o:p></span>
		</p><img src ="http://www.blogjava.net/rain1102/aggbug/75879.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/rain1102/" target="_blank">Eric.Zhou</a> 2006-10-18 13:31 <a href="http://www.blogjava.net/rain1102/archive/2006/10/18/75879.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>