ï»??xml version="1.0" encoding="utf-8" standalone="yes"?>丁香花高清在线观看完整版,精品久久久久久久久久久久包黑料,亚洲综合av影视http://www.aygfsteel.com/rain1102/category/37658.html<br/><font color="green" style="font-family: 华文行楷;font-size:16px;">子曰åQšå±é‚¦ä¸å…¥ï¼Œä¹±é‚¦ä¸å±…。天下有道则见,无道则隐ã€?lt;/font><font color="#3C1435"></font>zh-cnSat, 29 Aug 2009 07:48:05 GMTSat, 29 Aug 2009 07:48:05 GMT60SQL SERVER中的一些SET * ON含义http://www.aygfsteel.com/rain1102/archive/2009/08/29/293058.htmlEric.ZhouEric.ZhouSat, 29 Aug 2009 01:59:00 GMThttp://www.aygfsteel.com/rain1102/archive/2009/08/29/293058.htmlhttp://www.aygfsteel.com/rain1102/comments/293058.htmlhttp://www.aygfsteel.com/rain1102/archive/2009/08/29/293058.html#Feedback0http://www.aygfsteel.com/rain1102/comments/commentRss/293058.htmlhttp://www.aygfsteel.com/rain1102/services/trackbacks/293058.htmlSET XACT_ABORT { ON | OFF }

注释
å½?SET XACT_ABORT ä¸?ON æ—Óž¼Œå¦‚æžœ Transact-SQL 语句产生˜qè¡Œæ—‰™”™è¯¯ï¼Œæ•´ä¸ªäº‹åŠ¡ž®†ç»ˆæ­¢åÆˆå›žæ»šã€‚äØ“ OFF æ—Óž¼Œåªå›žæ»šäñ”生错误的 Transact-SQL 语句åQŒè€Œäº‹åС将¾l§ç®‹˜q›è¡Œå¤„理。编译错误(如语法错误)不受 SET XACT_ABORT 的媄响ã€?br />


SET QUOTED_IDENTIFIER{ ON | OFF }

注释
å½?SET QUOTED_IDENTIFIER ä¸?ON æ—Óž¼Œæ ‡è¯†½W¦å¯ä»¥ç”±åŒå¼•号分隔,而文字必™åȝ”±å•引号分隔。当 SET QUOTED_IDENTIFIER ä¸?OFF æ—Óž¼Œæ ‡è¯†½W¦ä¸å¯åŠ å¼•å·åQŒä¸”å¿…é¡»½W¦åˆæ‰€æœ?Transact-SQL 标识½W¦è§„则ã€?/p>
SET ANSI_NULLS { ON | OFF }

注释
SQL-92 标准要求在对½Iºå€ÆD¿›è¡Œç­‰äº?(=) 或不½{‰äºŽ (<>) 比较时取å€égØ“ FALSE。当 SET ANSI_NULLS ä¸?ON æ—Óž¼Œå³ä‹É column_name 中包含空å€û|¼Œä½¿ç”¨ WHERE column_name = NULL çš?SELECT 语句仍返回零行。即ä½?column_name 中包含非½Iºå€û|¼Œä½¿ç”¨ WHERE column_name <> NULL çš?SELECT 语句仍会˜q”回零行ã€?
å½?SET ANSI_NULLS ä¸?OFF æ—Óž¼Œ½{‰äºŽ (=) 和不½{‰äºŽ (<>) 比较˜qç®—½W¦ä¸éµä»Ž SQL-92 标准。ä‹Éç”?WHERE column_name = NULL çš?SELECT 语句˜q”回 column_name 中包含空值的行。ä‹Éç”?WHERE column_name <> NULL çš?SELECT 语句˜q”回列中包含非空值的行。此外,使用 WHERE column_name <> XYZ_value çš?SELECT 语句˜q”回所有不ä¸?XYZ_value 也不ä¸?NULL 的行ã€?



Eric.Zhou 2009-08-29 09:59 发表评论
]]>
SQL SERVER中两表之间复制数æ?/title><link>http://www.aygfsteel.com/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.aygfsteel.com/rain1102/archive/2009/08/19/291796.html</guid><wfw:comment>http://www.aygfsteel.com/rain1102/comments/291796.html</wfw:comment><comments>http://www.aygfsteel.com/rain1102/archive/2009/08/19/291796.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/rain1102/comments/commentRss/291796.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/rain1102/services/trackbacks/291796.html</trackback:ping><description><![CDATA[<span style="color: blue">select</span> * <span style="color: blue">into</span> tablenamebak <span style="color: blue">from</span> tablename   <span style="color: red">//˜q™é‡Œ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, c2 <span style="color: blue">from</span> tablename <span style="color: red"> //˜q™é‡Œtablenamebak 必须存在</span><img src ="http://www.aygfsteel.com/rain1102/aggbug/291796.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/rain1102/" target="_blank">Eric.Zhou</a> 2009-08-19 15:46 <a href="http://www.aygfsteel.com/rain1102/archive/2009/08/19/291796.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title> ž®†Clob¾cÕdž‹æ•°æ®è½¬æ¢æˆå­—½W¦ä¸²¾cÕdž‹http://www.aygfsteel.com/rain1102/archive/2009/06/03/279816.htmlEric.ZhouEric.ZhouWed, 03 Jun 2009 07:11:00 GMThttp://www.aygfsteel.com/rain1102/archive/2009/06/03/279816.htmlhttp://www.aygfsteel.com/rain1102/comments/279816.htmlhttp://www.aygfsteel.com/rain1102/archive/2009/06/03/279816.html#Feedback0http://www.aygfsteel.com/rain1102/comments/commentRss/279816.htmlhttp://www.aygfsteel.com/rain1102/services/trackbacks/279816.html dbms_lob.substr(clobcloum,2000,1)

select id, name, coden
  from cims_supplier
 where name like 'A%'
   and coden like 'A%'
union
select cdbregno      as id,
       dbms_lob.substr(supplier_name,2000,1) as name,
       coden         as coden
  from acdsupplier_moltable
 where supplier_name like 'A%'
   and coden like 'A%'

cims_supplier表中的name是varchar2¾cÕdž‹, 而acdsupplier_moltable表中的supplier_name为clob¾cÕdž‹, ˜q™æ ·ž®±å¯ä»¥unionäº?
当然排序也可以了.
select * from t1 order by dbms_lob.substr(clobcloum,2000,1);



Eric.Zhou 2009-06-03 15:11 发表评论
]]>
扚w‡åˆ é™¤default¾U¦æŸ[转蝲]http://www.aygfsteel.com/rain1102/archive/2008/11/13/240265.htmlEric.ZhouEric.ZhouThu, 13 Nov 2008 03:18:00 GMThttp://www.aygfsteel.com/rain1102/archive/2008/11/13/240265.htmlhttp://www.aygfsteel.com/rain1102/comments/240265.htmlhttp://www.aygfsteel.com/rain1102/archive/2008/11/13/240265.html#Feedback0http://www.aygfsteel.com/rain1102/comments/commentRss/240265.htmlhttp://www.aygfsteel.com/rain1102/services/trackbacks/240265.html

有时候需要批量同步数据库的default value ¾U¦æŸ(constraint)åQŒåœ¨SQL2005中,可以通过sys.default_constraints¾pȝ»Ÿè§†å›¾æ¥èŽ·å–è¯¥æ•°æ®åº“çš„è§†å›¾æˆ–è€…æŸä¸ªè¡¨å¯¹åº”çš„è§†å›¾ã€?

该视å›ùN»˜è®¤å¯¹åº”å­—ŒD?

nameåQšçº¦æŸå
object_id åQšçº¦æŸID
parent_object_idåQšçº¦æŸå¯¹åº”的表ID
parent_column_idåQšçº¦æŸå¯¹åº”表中的½W¬å‡ åˆ?
definitionåQšé»˜è®¤å€?

如下SQL查询defaulttest数据库中test1表所有的default value constraints �

SELECT * FROM sys.default_constraints WHERE sys.default_constraints.parent_object_id=OBJECT_ID('test1')

修改带有¾U¦æŸçš„æ•°æ®è¡¨¾l“构讲了如何删除和添加约束,下面的语句会列出所有的default value constraintã€?

SELECT
sys.default_constraints.name AS name,
sys.[tables].name AS tablename
FROM sys.default_constraints
LEFT JOIN sys.tables ON
sys.[tables].object_id=sys.[default_constraints].parent_object_id

然后使用游标遍历删除对应表的¾U¦æŸå›_¯



Eric.Zhou 2008-11-13 11:18 发表评论
]]>
SQL中Caseçš„ä‹É用方æ³?下篇) (转蝲)http://www.aygfsteel.com/rain1102/archive/2008/09/24/230840.htmlEric.ZhouEric.ZhouWed, 24 Sep 2008 03:29:00 GMThttp://www.aygfsteel.com/rain1102/archive/2008/09/24/230840.htmlhttp://www.aygfsteel.com/rain1102/comments/230840.htmlhttp://www.aygfsteel.com/rain1102/archive/2008/09/24/230840.html#Feedback0http://www.aygfsteel.com/rain1102/comments/commentRss/230840.htmlhttp://www.aygfsteel.com/rain1102/services/trackbacks/230840.html四,æ ÒŽ®æ¡äšg有选择的UPDATEã€?/strong>

例,有如下更新条�
  1. 工资5000以上的职员,工资减少10%
  2. 工资�000�600之间的职员,工资增加15%
很容易考虑的是选择执行两次UPDATE语句åQŒå¦‚下所½C?
--条äšg1
UPDATE Personnel
SET salary = salary * 0.9
WHERE salary >= 5000;
--条äšg2
UPDATE Personnel
SET salary = salary * 1.15
WHERE salary >= 2000 AND salary < 4600;

但是事情没有惌™±¡å¾—那么简单,假设有个人工èµ?000块。首先,按照条äšg1åQŒå·¥èµ„减ž®?0%åQŒå˜æˆå·¥èµ?500。接下来˜qè¡Œ½W¬äºŒä¸ªSQLæ—¶å€™ï¼Œå› äØ“˜q™ä¸ªäººçš„工资æ˜?500åœ?000åˆ?600的范围之内, 需增加15%åQŒæœ€åŽè¿™ä¸ªäh的工资结果是5175,不但没有减少åQŒåè€Œå¢žåŠ äº†ã€‚å¦‚æžœè¦æ˜¯å˜q‡æ¥æ‰§è¡ŒåQŒé‚£ä¹ˆå·¥èµ?600çš„äh相反会变成减ž®‘工资。暂且不½Ž¡è¿™ä¸ªè§„章是多么荒诞åQŒå¦‚果想要一个SQL 语句实现˜q™ä¸ªåŠŸèƒ½çš„è¯åQŒæˆ‘们需要用到Case函数。代码如ä¸?
UPDATE Personnel
SET salary = CASE WHEN salary >= 5000
             THEN salary * 0.9
WHEN salary >= 2000 AND salary < 4600
THEN salary * 1.15
ELSE salary END;

˜q™é‡Œè¦æ³¨æ„ä¸€ç‚¹ï¼Œæœ€åŽä¸€è¡Œçš„ELSE salary是必需的,要是没有˜q™è¡ŒåQŒä¸½W¦åˆ˜q™ä¸¤ä¸ªæ¡ä»¶çš„人的工资ž®†ä¼šè¢«å†™æˆNUll,那可ž®±å¤§äº‹ä¸å¦™äº†ã€‚在Case函数中Else部分的默认值是NULLåQŒè¿™ç‚ÒŽ˜¯éœ€è¦æ³¨æ„çš„地方ã€?
˜q™ç§æ–ÒŽ³•˜q˜å¯ä»¥åœ¨å¾ˆå¤šåœ°æ–¹ä½¿ç”¨åQŒæ¯”如说变更主键˜q™ç§ç´¯æ´»ã€?
一般情况下åQŒè¦æƒÏxŠŠä¸¤æ¡æ•°æ®çš„Primary key,aå’Œb交换åQŒéœ€è¦ç»˜q‡äÍ时存储,拯‚´åQŒè¯»å›žæ•°æ®çš„三个˜q‡ç¨‹åQŒè¦æ˜¯ä‹É用Case函数的话åQŒä¸€åˆ‡éƒ½å˜å¾—½Ž€å•多了ã€?
p_key col_1 col_2
a 1 张三
b 2 李四
c 3 王五


假设有如上数据,需要把主键aå’?code>bç›æ€º’交换。用Case函数来实现的话,代码如下
UPDATE SomeTable
SET p_key = CASE WHEN p_key = 'a'
THEN 'b'
WHEN p_key = 'b'
THEN 'a'
ELSE p_key END
WHERE p_key IN ('a', 'b');

同样的也可以交换两个Unique key。需要注意的是,如果有需要交换主键的情况发生åQŒå¤šåŠæ˜¯å½“初对这个表的设计进行得不够åˆîC½åQŒå¾è®®æ£€æŸ¥è¡¨çš„设计是否妥当ã€?

五,两个表数据是否一致的‹‚€æŸ¥ã€?/strong>

Case函数不同于DECODE函数。在Case函数中,可以使用BETWEEN,LIKE,IS NULL,IN,EXISTS½{‰ç­‰ã€‚比如说使用IN,EXISTSåQŒå¯ä»¥è¿›è¡Œå­æŸ¥è¯¢åQŒä»Žè€?实现更多的功能ã€?
下面具个例子来说明,有两个表åQŒtbl_A,tbl_BåQŒä¸¤ä¸ªè¡¨ä¸­éƒ½æœ‰keyCol列。现在我们对两个表进行比较,tbl_A中的keyCol列的数据如果在tbl_Bçš„keyCol列的数据中可以找刎ͼŒ ˜q”回¾l“æžœ'Matched',如果没有扑ֈ°åQŒè¿”回结æž?Unmatched'ã€?
要实çŽîC¸‹é¢è¿™ä¸ªåŠŸèƒ½ï¼Œå¯ä»¥ä½¿ç”¨ä¸‹é¢ä¸¤æ¡è¯­å¥
--使用IN的时�/span>
SELECT keyCol,
CASE WHEN keyCol IN ( SELECT keyCol FROM tbl_B )
THEN 'Matched'
ELSE 'Unmatched' END Label
FROM tbl_A;
--使用EXISTS的时�/span>
SELECT keyCol,
CASE WHEN EXISTS ( SELECT * FROM tbl_B
WHERE tbl_A.keyCol = tbl_B.keyCol )
THEN 'Matched'
ELSE 'Unmatched' END Label
FROM tbl_A;

使用INå’ŒEXISTS的结果是相同的。也可以使用NOT INå’ŒNOT EXISTSåQŒä½†æ˜¯è¿™ä¸ªæ—¶å€™è¦æ³¨æ„NULL的情å†üc€?

六,在Case函数中ä‹É用合计函æ•?/strong>

假设有下面一个表
学号(std_id) 评¡¨‹ID(class_id) 评¡¨‹å?class_name) ä¸ÖM¿®flagåQˆmain_class_flg)
100 1 ¾læµŽå­?/td> Y
100 2 历史�/td> N
200 2 历史�/td> N
200 3 考古�/td> Y
200 4 计算�/td> N
300 4 计算�/td> N
400 5 化学 N
500 6 æ•°å­¦ N

有的学生选择了同时修几门评¡¨‹(100,200)也有的学生只选择了一门课½E?300,400,500)。选修多门评¡¨‹çš„学生,要选择一门课½E‹ä½œä¸ÞZ¸»ä¿®ï¼Œä¸ÖM¿®flag里面写入 Y。只选择一门课½E‹çš„学生åQŒä¸»ä¿®flag为N(实际上要是写入Y的话åQŒå°±æ²¡æœ‰ä¸‹é¢çš„麻烦事了,ä¸ÞZº†ä¸¾ä¾‹å­ï¼Œ˜q˜è¯·å¤šå¤šåŒ…含)ã€?
现在我们要按照下面两个条件对˜q™ä¸ªè¡¨è¿›è¡ŒæŸ¥è¯?
  1. 只选修一门课½E‹çš„人,˜q”回那门评¡¨‹çš„ID
  2. 选修多门评¡¨‹çš„ähåQŒè¿”回所选的主课½E‹ID

½Ž€å•çš„æƒÏx³•ž®±æ˜¯åQŒæ‰§è¡Œä¸¤æ¡ä¸åŒçš„SQL语句˜q›è¡ŒæŸ¥è¯¢ã€?
条äšg1
--条äšg1åQšåªé€‰æ‹©äº†ä¸€é—¨è¯¾½E‹çš„学生
SELECT std_id, MAX(class_id) AS main_class
FROM Studentclass
GROUP BY std_id
HAVING COUNT(*) = 1;

执行¾l“æžœ1
STD_ID   MAIN_class
------   ----------
300      4
400      5
500      6

条äšg2
--条äšg2åQšé€‰æ‹©å¤šé—¨è¯„¡¨‹çš„å­¦ç”?/span>
SELECT std_id, class_id AS main_class
FROM Studentclass
WHERE main_class_flg = 'Y' ;

执行¾l“æžœ2
STD_ID  MAIN_class
------  ----------
100     1
200     3

如果使用Case函数åQŒæˆ‘们只要一条SQL语句ž®±å¯ä»¥è§£å†³é—®é¢˜ï¼Œå…·ä½“如下所½C?
SELECT  std_id,
CASE WHEN COUNT(*) = 1  --只选择一门课½E‹çš„学生的情å†?/span>
THEN MAX(class_id)
ELSE MAX(CASE WHEN main_class_flg = 'Y'
THEN class_id
ELSE NULL END
)
END AS main_class
FROM Studentclass
GROUP BY std_id;

˜qè¡Œ¾l“æžœ
STD_ID   MAIN_class
------   ----------
100      1
200      3
300      4
400      5
500      6

通过在Case函数中嵌套Case函数åQŒåœ¨åˆè®¡å‡½æ•°ä¸­ä‹É用Case函数½{‰æ–¹æ³•,我们可以è½ÀL¾çš„解册™¿™ä¸ªé—®é¢˜ã€‚ä‹É用Case函数¾l™æˆ‘们带来了更大的自由度ã€?
最后提醒一下ä‹É用Case函数的新手注意不要犯下面的错è¯?
CASE col_1
WHEN 1        THEN 'Right'
WHEN NULL  THEN 'Wrong'
END

在这个语句中When Null˜q™ä¸€è¡Œæ€ÀL˜¯˜q”回unknownåQŒæ‰€ä»¥æ°¸˜qœä¸ä¼šå‡ºçްWrong的情å†üc€‚因䏸™¿™å¥å¯ä»¥æ›¿æ¢æˆWHEN col_1 = NULLåQŒè¿™æ˜¯ä¸€ä¸ªé”™è¯¯çš„用法åQŒè¿™ä¸ªæ—¶å€™æˆ‘们应该选择用WHEN col_1 IS NULLã€?img src ="http://www.aygfsteel.com/rain1102/aggbug/230840.html" width = "1" height = "1" />

]]>
SQL中Caseçš„ä‹É用方æ³?上篇)(转蝲)http://www.aygfsteel.com/rain1102/archive/2008/09/24/230834.htmlEric.ZhouEric.ZhouWed, 24 Sep 2008 03:20:00 GMThttp://www.aygfsteel.com/rain1102/archive/2008/09/24/230834.htmlhttp://www.aygfsteel.com/rain1102/comments/230834.htmlhttp://www.aygfsteel.com/rain1102/archive/2008/09/24/230834.html#Feedback0http://www.aygfsteel.com/rain1102/comments/commentRss/230834.htmlhttp://www.aygfsteel.com/rain1102/services/trackbacks/230834.htmlCaseå…ähœ‰ä¸¤ç§æ ¼å¼ã€‚简单Case函数和Case搜烦函数ã€?
--½Ž€å•Case函数
CASE sex
WHEN '1' THEN 'ç”?
WHEN '2' THEN '�
ELSE 'å…¶ä»–' END
--Case搜烦函数
CASE WHEN sex = '1' THEN 'ç”?
WHEN sex = '2' THEN '�
ELSE 'å…¶ä»–' END

˜q™ä¸¤¿Uæ–¹å¼ï¼Œå¯ä»¥å®žçŽ°ç›¸åŒçš„åŠŸèƒ½ã€‚ç®€å•Case函数的写法相å¯Òޝ”较简‹zï¼Œä½†æ˜¯å’ŒCase搜烦函数相比åQŒåŠŸèƒ½æ–¹é¢ä¼šæœ‰äº›é™åˆ¶åQŒæ¯”如写判断式ã€?
˜q˜æœ‰ä¸€ä¸ªéœ€è¦æ³¨æ„çš„问题åQŒCase函数只返回第一个符合条件的å€û|¼Œå‰©ä¸‹çš„Case部分ž®†ä¼šè¢«è‡ªåŠ¨å¿½ç•¥ã€?
--比如è¯ß_¼Œä¸‹é¢˜q™æ®µSQLåQŒä½ æ°¸è¿œæ— æ³•得到“½W¬äºŒ¾c?#8221;˜q™ä¸ª¾l“æžœ
CASE WHEN col_1 IN ( 'a', 'b') THEN '½W¬ä¸€¾c?
WHEN col_1 IN ('a')       THEN '½W¬äºŒ¾c?
ELSE'å…¶ä»–' END

下面我们来看一下,使用Case函数都能做些什么事情�

一åQŒå·²çŸ¥æ•°æ®æŒ‰ç…§å¦å¤–一¿Uæ–¹å¼è¿›è¡Œåˆ†¾l„,分析ã€?/strong>

有如下数æ?(ä¸ÞZº†çœ‹å¾—æ›´æ¸…æ¥šï¼Œæˆ‘åÆˆæ²¡æœ‰ä½¿ç”¨å›½å®¶ä»£ç åQŒè€Œæ˜¯ç›´æŽ¥ç”¨å›½å®¶åä½œäØ“Primary Key)
国家åQˆcountryåQ?/td> 人口åQˆpopulationåQ?/td>
中国 600
¾ŸŽå›½ 100
加拿�/td> 100
英国 200
法国 300
日本 250
德国 200
墨西�/td> 50
印度 250

æ ÒŽ®˜q™ä¸ªå›½å®¶äººå£æ•°æ®åQŒç»Ÿè®¡äºš‹z²å’ŒåŒ—美‹z²çš„人口数量。应该得åˆîC¸‹é¢è¿™ä¸ªç»“æžœã€?
‹z?/td> 人口
亚洲 1100
北美‹z?/td> 250
å…¶ä»– 700

惌™¦è§£å†³˜q™ä¸ªé—®é¢˜åQŒä½ ä¼šæ€Žä¹ˆåšï¼Ÿç”Ÿæˆä¸€ä¸ªå¸¦æœ‰æ´²Codeçš„ViewåQŒæ˜¯ä¸€ä¸ªè§£å†Ïx–¹æ³•,但是˜q™æ ·å¾ˆéš¾åŠ¨æ€çš„æ”¹å˜¾lŸè®¡çš„æ–¹å¼ã€?
如果使用Case函数åQŒSQL代码如下:
SELECT  SUM(population),
CASE country
WHEN '中国'     THEN '亚洲'
WHEN '印度'     THEN '亚洲'
WHEN '日本'     THEN '亚洲'
WHEN '¾ŸŽå›½'     THEN '北美‹z?
WHEN '加拿å¤?  THEN '北美‹z?
WHEN '墨西å“?  THEN '北美‹z?
ELSE 'å…¶ä»–' END
FROM    Table_A
GROUP BY CASE country
WHEN '中国'     THEN '亚洲'
WHEN '印度'     THEN '亚洲'
WHEN '日本'     THEN '亚洲'
WHEN '¾ŸŽå›½'     THEN '北美‹z?
WHEN '加拿å¤?  THEN '北美‹z?
WHEN '墨西å“?  THEN '北美‹z?
ELSE 'å…¶ä»–' END;

同样的,我们也可以用˜q™ä¸ªæ–ÒŽ³•来判断工资的½{‰çñ”åQŒåƈ¾lŸè®¡æ¯ä¸€½{‰çñ”çš„äh数。SQL代码如下åQ?
SELECT
CASE WHEN salary <= 500 THEN '1'
WHEN salary > 500 AND salary <= 600  THEN '2'
WHEN salary > 600 AND salary <= 800  THEN '3'
WHEN salary > 800 AND salary <= 1000 THEN '4'
ELSE NULL END salary_class,
COUNT(*)
FROM    Table_A
GROUP BY
CASE WHEN salary <= 500 THEN '1'
WHEN salary > 500 AND salary <= 600  THEN '2'
WHEN salary > 600 AND salary <= 800  THEN '3'
WHEN salary > 800 AND salary <= 1000 THEN '4'
ELSE NULL END;

二,用一个SQL语句完成不同条äšg的分¾l„ã€?/strong>

有如下数�
国家åQˆcountryåQ?/td> 性别åQˆsexåQ?/td> 人口åQˆpopulationåQ?/td>
中国 1 340
中国 2 260
¾ŸŽå›½ 1 45
¾ŸŽå›½ 2 55
加拿�/td> 1 51
加拿�/td> 2 49
英国 1 40
英国 2 60

按照国家和性别˜q›è¡Œåˆ†ç»„åQŒå¾—出结果如ä¸?
国家 �/td> �/td>
中国 340 260
¾ŸŽå›½ 45 55
加拿�/td> 51 49
英国 40 60

普通情况下åQŒç”¨UNION也可以实现用一条语句进行查询。但是那样增加消è€?两个Select部分)åQŒè€Œä¸”SQL语句会比较长ã€?
下面是一个是用Case函数来完成这个功能的例子
SELECT country,
SUM( CASE WHEN sex = '1' THEN
population ELSE 0 END),  --ç”äh€§ähå?/span>
SUM( CASE WHEN sex = '2' THEN
population ELSE 0 END)   --å¥Ïx€§ähå?/span>
FROM  Table_A
GROUP BY country;

˜q™æ ·æˆ‘们使用SelectåQŒå®Œæˆå¯¹äºŒç»´è¡¨çš„输出形式åQŒå……分显½CÞZº†Case函数的强大ã€?

三,在Check中ä‹É用Case函数ã€?/strong>

在Check中ä‹É用Case函数在很多情况下都是非常不错的解å†Ïx–¹æ³•。可能有很多人根本就不用CheckåQŒé‚£ä¹ˆæˆ‘廸™®®ä½ åœ¨çœ‹è¿‡ä¸‹é¢çš„例子之后也ž®è¯•一下在SQL中ä‹É用Checkã€?
下面我们来ä‹D个例å­?
公司AåQŒè¿™ä¸ªå…¬å¸æœ‰ä¸ªè§„定,奌™Œå‘˜çš„工资必须高于1000块。如果用Checkå’ŒCase来表现的话,如下所½C?
CONSTRAINT check_salary CHECK
( CASE WHEN sex = '2'
THEN CASE WHEN salary > 1000
THEN 1 ELSE 0 END
ELSE 1 END = 1 )

如果单纯使用CheckåQŒå¦‚下所½C?
CONSTRAINT check_salary CHECK
( sex = '2' AND salary > 1000 )

奌™Œå‘˜çš„æ¡äšg倒是½W¦åˆäº†ï¼Œç”¯‚Œå‘˜å°±æ— æ³•输入了ã€?

USE pubs
GO
SELECT
CASE
WHEN price IS NULL THEN 'Unpriced'
WHEN price < 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 < 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 < 10 THEN 'Bargain'
WHEN price BETWEEN 10 and 20 THEN 'Average'
ELSE 'Gift to impress relatives'
END,
Title
GO



]]>
删除重复记录http://www.aygfsteel.com/rain1102/archive/2008/09/04/227080.htmlEric.ZhouEric.ZhouThu, 04 Sep 2008 14:52:00 GMThttp://www.aygfsteel.com/rain1102/archive/2008/09/04/227080.htmlhttp://www.aygfsteel.com/rain1102/comments/227080.htmlhttp://www.aygfsteel.com/rain1102/archive/2008/09/04/227080.html#Feedback0http://www.aygfsteel.com/rain1102/comments/commentRss/227080.htmlhttp://www.aygfsteel.com/rain1102/services/trackbacks/227080.html问题
从表中删除重复记�

解决æ–ÒŽ¡ˆ
用带有聚集函数的子查è¯? 例如MIN, ä»ÀL„é€‰æ‹©ä¿ç•™çš„ID(本例中只保留每组中IDåähœ€ž®çš„记录):

    delete from dept 
        where id not in (select min(id) 
                                    from dept 
                                group by name)



]]>
复制表定ä¹?/title><link>http://www.aygfsteel.com/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.aygfsteel.com/rain1102/archive/2008/09/04/227075.html</guid><wfw:comment>http://www.aygfsteel.com/rain1102/comments/227075.html</wfw:comment><comments>http://www.aygfsteel.com/rain1102/archive/2008/09/04/227075.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/rain1102/comments/commentRss/227075.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/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命ä×o:<br />     <span style="color: #008000">create table dept_2 like dept<br /> </span><br /> Oracle, MySQL å’?PostgreSQL<br /> 在create table命ä×oä¸? 使用一个不˜q”回ä»ÖM½•行的子查è¯?<br />    <span style="color: #008000"> create table dept_2<br />     as<br />     select * from dept where 1=0<br /> </span><br /> SQL Server<br /> 使用带有不返回ä“Q何行的查询和into子句:<br />     <span style="color: #008000">select * into dept_2 from dept where 1=0</span><img src ="http://www.aygfsteel.com/rain1102/aggbug/227075.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/rain1102/" target="_blank">Eric.Zhou</a> 2008-09-04 22:34 <a href="http://www.aygfsteel.com/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å’ŒFalsehttp://www.aygfsteel.com/rain1102/archive/2008/08/29/225667.htmlEric.ZhouEric.ZhouFri, 29 Aug 2008 15:38:00 GMThttp://www.aygfsteel.com/rain1102/archive/2008/08/29/225667.htmlhttp://www.aygfsteel.com/rain1102/comments/225667.htmlhttp://www.aygfsteel.com/rain1102/archive/2008/08/29/225667.html#Feedback0http://www.aygfsteel.com/rain1102/comments/commentRss/225667.htmlhttp://www.aygfsteel.com/rain1102/services/trackbacks/225667.html     List<Meeting> meetings = new ArrayList<Meeting>();
    meetings = mgr.createQuery("select new com.integral7.ejb3.investigations.Meeting(m.id, m.scheduledDate, m.type.name, m.description, " +
        "case when exists(select id from MeetingAudit ma where ma.meeting = m and ma.audit.id = ?0) then True else False end) " +
        " from Meeting m " +
        " where m.owner.id = ?1 and m.scheduledDate >= ?2 order by m.scheduledDate asc")
        .setParameter(0, candidateId)
        .setParameter(1, ownerId)
        .setParameter(2, DateUtils.convertToBeginningOfDay(new Date())).getResultList();
    return meetings;
 }

˜q™é‡Œä¸»è¦æ³¨æ„True å’?span style="color: #008000">False 首字母必™åÕd¤§å†™å…¶ä½™å°å†?

]]>
DECLARE CURSOR(sqlserver 2000) http://www.aygfsteel.com/rain1102/archive/2008/08/28/225220.htmlEric.ZhouEric.ZhouThu, 28 Aug 2008 03:06:00 GMThttp://www.aygfsteel.com/rain1102/archive/2008/08/28/225220.htmlhttp://www.aygfsteel.com/rain1102/comments/225220.htmlhttp://www.aygfsteel.com/rain1102/archive/2008/08/28/225220.html#Feedback1http://www.aygfsteel.com/rain1102/comments/commentRss/225220.htmlhttp://www.aygfsteel.com/rain1102/services/trackbacks/225220.html功能:
    å®šä¹‰ Transact-SQL 服务器游标的ç‰ÒŽ€§ï¼Œä¾‹å¦‚游标的滚动行为和用于生成游标对其˜q›è¡Œæ“ä½œçš„结果集的查询。DECLARE CURSOR 接受åŸÞZºŽ SQL-92 标准的语法和使用一¾l?Transact-SQL 扩展的语法ã€?/font>

SQL-92 语法
DECLARE cursor_name [ INSENSITIVE ] [ SCROLL ] CURSOR
FOR select_statement
[ FOR { READ ONLY | UPDATE [ OF column_name [ ,...n ] ] } ]

Transact-SQL 扩展语法
DECLARE cursor_name CURSOR
[ LOCAL | GLOBAL ]
[ FORWARD_ONLY | SCROLL ]
[ STATIC | KEYSET | DYNAMIC | FAST_FORWARD ]
[ READ_ONLY | SCROLL_LOCKS | OPTIMISTIC ]
[ TYPE_WARNING ]
FOR select_statement
[ FOR UPDATE [ OF column_name [ ,...n ] ] ]

SQL-92 参数
cursor_name

是所定义çš?Transact-SQL 服务器游标名¿U°ã€‚cursor_name 必须遵从标识½W¦è§„则。有å…Ïx ‡è¯†ç¬¦è§„则的更多信息,请参见ä‹É用标识符ã€?/font>

INSENSITIVE

定义一个游标,以创建将ç”Þp¯¥æ¸¸æ ‡ä½¿ç”¨çš„æ•°æ®çš„临时复本。对游标的所有请求都ä»?tempdb 中的该äÍ时表中得到应½{”;因此åQŒåœ¨å¯¹è¯¥æ¸¸æ ‡˜q›è¡Œæå–操作时返回的数据中不反映对基表所做的修改åQŒåÆˆä¸”è¯¥æ¸¸æ ‡ä¸å…è®æ€¿®æ”V€‚ä‹Éç”?SQL-92 语法æ—Óž¼Œå¦‚果省略 INSENSITIVEåQŒï¼ˆä»ÖM½•用户åQ‰å¯¹åŸø™¡¨æäº¤çš„删除和更新都反映在后面的提取中ã€?/font>

SCROLL

指定所有的提取选项åQˆFIRST、LAST、PRIOR、NEXT、RELATIVE、ABSOLUTEåQ‰å‡å¯ç”¨ã€‚如果在 SQL-92 DECLARE CURSOR 中未指定 SCROLLåQŒåˆ™ NEXT 是唯一支持的提取选项。如果指å®?SCROLLåQŒåˆ™ä¸èƒ½ä¹ŸæŒ‡å®?FAST_FORWARDã€?/font>

select_statement

是定义游标结果集的标�SELECT 语句。在游标声明�select_statement 内不允许使用关键�COMPUTE、COMPUTE BY、FOR BROWSE �INTO�/font>

如果 select_statement 中的子句与所è¯äh±‚的游标类型的功能发生冲突åQŒåˆ™ Microsoft? SQL Server? 隐性地ž®†æ¸¸æ ‡è{æ¢äØ“å¦ä¸€¿Uç±»åž‹ã€‚有å…Ïx›´å¤šä¿¡æ¯ï¼Œè¯·å‚见隐性游标è{换ã€?/font>

READ ONLY

Prevents updates made through this cursor.�UPDATE �DELETE 语句�WHERE CURRENT OF 子句中不能引用游标。该选项替代要更新的游标的默认功能�/font>

UPDATE [OF column_name [,...n]]

定义游标内可更新的列。如果指å®?OF column_name [,...n] 参数åQŒåˆ™åªå…è®æ€¿®æ”ÒŽ‰€åˆ—出的列。如果在 UPDATE 中未指定列的列表åQŒåˆ™å¯ä»¥æ›´æ–°æ‰€æœ‰åˆ—ã€?/font>

Transact-SQL 扩展参数
cursor_name

是所定义çš?Transact-SQL 服务器游标名¿U°ã€‚cursor_name 必须遵从标识½W¦è§„则。有å…Ïx ‡è¯†ç¬¦è§„则的更多信息,请参见ä‹É用标识符ã€?/font>

LOCAL

指定该游标的作用域对在其中创建它的批处理、存储过½E‹æˆ–触发器是局部的。该游标名称仅在˜q™ä¸ªä½œç”¨åŸŸå†…有效。在批处理、存储过½E‹ã€è§¦å‘器或存储过½E?OUTPUT 参数中,该游标可由局部游标变量引用。OUTPUT 参数用于ž®†å±€éƒ¨æ¸¸æ ‡ä¼ é€’回调用批处理、存储过½E‹æˆ–触发器,它们可在存储˜q‡ç¨‹¾lˆæ­¢åŽç»™æ¸¸æ ‡å˜é‡æŒ‡æ´¾å‚数使其引用游标。除é?OUTPUT 参数ž®†æ¸¸æ ‡ä¼ é€’回来,否则游标ž®†åœ¨æ‰¹å¤„理、存储过½E‹æˆ–触发器终止时隐性释放。如æž?OUTPUT 参数ž®†æ¸¸æ ‡ä¼ é€’回来,游标在最后引用它的变量释放或¼›Õd¼€ä½œç”¨åŸŸæ—¶é‡Šæ”¾ã€?/font>

GLOBAL

指定该游标的作用域对˜qžæŽ¥æ˜¯å…¨å±€çš„。在ç”Þp¿žæŽ¥æ‰§è¡Œçš„ä»ÖM½•存储˜q‡ç¨‹æˆ–批处理中,都可以引用该游标名称。该游标仅在脱接旉™šæ€§é‡Šæ”¾ã€?/font>

 

说明  如果 GLOBAL å’?LOCAL 参数都未指定åQŒåˆ™é»˜è®¤å€¼ç”± default to local cursor 数据库选项的设¾|®æŽ§åˆ¶ã€‚在 SQL Server 7.0 版中åQŒè¯¥é€‰é¡¹é»˜è®¤ä¸?FALSE 以与 SQL Server 早期版本相匹配,åœ?SQL Server 早期版本中所有游标都是全局的。该选项的默认值在以后çš?SQL Server 版本中可能会更改。有å…Ïx›´å¤šä¿¡æ¯ï¼Œè¯·å‚见设¾|®æ•°æ®åº“选项ã€?/font>


FORWARD_ONLY

指定游标只能从第一行滚动到最后一行。FETCH NEXT 是唯一受支持的提取选项。如果在指定 FORWARD_ONLY 时不指定 STATIC、KEYSET å’?DYNAMIC 关键字,则游标作ä¸?DYNAMIC 游标˜q›è¡Œæ“ä½œã€‚如æž?FORWARD_ONLY å’?SCROLL 均未指定åQŒé™¤éžæŒ‡å®?STATIC、KEYSET æˆ?DYNAMIC 关键字,否则默认ä¸?FORWARD_ONLY。STATIC、KEYSET å’?DYNAMIC 游标默认ä¸?SCROLL。与 ODBC å’?ADO˜q™ç±»æ•°æ®åº?API 不同åQŒSTATIC、KEYSET å’?DYNAMIC Transact-SQL 游标支持 FORWARD_ONLY。FAST_FORWARD å’?FORWARD_ONLY 是互斥的åQ›å¦‚果指定一个,则不能指定另一个ã€?/p>

STATIC

定义一个游标,以创建将ç”Þp¯¥æ¸¸æ ‡ä½¿ç”¨çš„æ•°æ®çš„临时复本。对游标的所有请求都ä»?tempdb 中的该äÍ时表中得到应½{”;因此åQŒåœ¨å¯¹è¯¥æ¸¸æ ‡˜q›è¡Œæå–操作时返回的数据中不反映对基表所做的修改åQŒåÆˆä¸”è¯¥æ¸¸æ ‡ä¸å…è®æ€¿®æ”V€?/p>

KEYSET

指定当游标打开æ—Óž¼Œæ¸¸æ ‡ä¸­è¡Œçš„æˆå‘˜èµ„格和™åºåºå·²ç»å›ºå®šã€‚对行进行唯一标识的键集内¾|®åœ¨ tempdb 内一个称ä¸?keyset çš„è¡¨ä¸­ã€‚å¯¹åŸø™¡¨ä¸­çš„非键值所做的更改åQˆç”±æ¸¸æ ‡æ‰€æœ‰è€…æ›´æ”ÒŽˆ–由其它用æˆähäº¤ï¼‰åœ¨ç”¨æˆäh»šåŠ¨æ¸¸æ ‡æ—¶æ˜¯å¯è§†çš„ã€‚å…¶ä»–ç”¨æˆ¯‚¿›è¡Œçš„æ’入是不可视的(不能通过 Transact-SQL 服务器游标进行插入)。如果某行已删除åQŒåˆ™å¯¹è¯¥è¡Œçš„æå–操作ž®†è¿”å›?@@FETCH_STATUS å€?-2。从游标外更新键值类ä¼égºŽåˆ é™¤æ—§è¡ŒåŽæŽ¥ç€æ’入新行的操作。含有新值的行不可视åQŒå¯¹å«æœ‰æ—§å€¼çš„行的提取操作ž®†è¿”å›?@@FETCH_STATUS å€?-2。如果通过指定 WHERE CURRENT OF 子句用游标完成更斎ͼŒåˆ™æ–°å€¼å¯è§†ã€?/p>

DYNAMIC

定义一个游标,以反映在滚动游标时对¾l“果集内的行所做的所有数据更攏V€‚行的数据倹{€é¡ºåºå’Œæˆå‘˜åœ¨æ¯‹Æ¡æå–时都会更改。动态游标不支持 ABSOLUTE 提取选项ã€?/p>

FAST_FORWARD

指定启用了性能优化çš?FORWARD_ONLY、READ_ONLY 游标。如果指å®?FAST_FORWARDåQŒåˆ™ä¸èƒ½ä¹ŸæŒ‡å®?SCROLL æˆ?FOR_UPDATE。FAST_FORWARD å’?FORWARD_ONLY 是互斥的åQ›å¦‚果指定一个,则不能指定另一个ã€?/p>

READ_ONLY

¼›æ­¢é€šè¿‡è¯¥æ¸¸æ ‡è¿›è¡Œæ›´æ–°ã€‚在 UPDATE æˆ?DELETE 语句çš?WHERE CURRENT OF 子句中不能引用游标。该选项替代要更新的游标的默认功能ã€?/p>

SCROLL_LOCKS

指定¼‹®ä¿é€šè¿‡æ¸¸æ ‡å®Œæˆçš„定位更新或定位删除可以成功。当ž®†è¡Œè¯Õd…¥æ¸¸æ ‡ä»¥ç¡®ä¿å®ƒä»¬å¯ç”¨äºŽä»¥åŽçš„ä¿®æ”ÒŽ—¶åQŒMicrosoft? SQL Server? 会锁定这些行。如果还指定äº?FAST_FORWARDåQŒåˆ™ä¸èƒ½æŒ‡å®š SCROLL_LOCKSã€?/p>

OPTIMISTIC

指定如果行自从被è¯Õd…¥æ¸¸æ ‡ä»¥æ¥å·²å¾—到更斎ͼŒåˆ™é€šè¿‡æ¸¸æ ‡˜q›è¡Œçš„定位更新或定位删除不成功。当ž®†è¡Œè¯Õd…¥æ¸¸æ ‡æ—?SQL Server 不锁定行。相反,SQL Server 使用 timestamp 列值的比较åQŒæˆ–者如果表没有 timestamp 列则使用校验å€û|¼Œä»¥ç¡®å®šå°†è¡Œè¯»å…¥æ¸¸æ ‡åŽæ˜¯å¦å·²ä¿®æ”¹è¯¥è¡Œã€‚如果已修改该行åQŒå°è¯•进行的定位更新或定位删除将å¤ÞpÓ|。如果还指定äº?FAST_FORWARDåQŒåˆ™ä¸èƒ½æŒ‡å®š OPTIMISTICã€?/p>

TYPE_WARNING

指定如果游标从所è¯äh±‚的类型隐性è{æ¢äØ“å¦ä¸€¿Uç±»åž‹ï¼Œåˆ™ç»™å®¢æˆ·ç«¯å‘送警告消息ã€?/p>

select_statement

是定义游标结果集的标�SELECT 语句。在游标声明�select_statement 内不允许使用关键�COMPUTE、COMPUTE BY、FOR BROWSE �INTO�/p>

如果 select_statement 内的子句与所è¯äh±‚的游标类型冲½Hï¼ŒSQL Server ž®†æ¸¸æ ‡é𐿀§è{换成另一¿Uç±»åž‹ã€‚有å…Ïx›´å¤šä¿¡æ¯ï¼Œè¯·å‚见隐性游标è{换ã€?/p>

UPDATE [OF column_name [,...n]]

定义游标内可更新的列。如果提供了 OF column_name [,...n]åQŒåˆ™åªå…è®æ€¿®æ”¹åˆ—出的列。如果在 UPDATE 中未指定列的列表åQŒé™¤éžæŒ‡å®šäº† READ_ONLY òq¶å‘选项åQŒå¦åˆ™æ‰€æœ‰åˆ—均可更新ã€?/p>

注释
DECLARE CURSOR 定义 Transact-SQL 服务器游标的ç‰ÒŽ€§ï¼Œä¾‹å¦‚游标的滚动行为和用于生成游标对其˜q›è¡Œæ“ä½œçš„结果集的查询。OPEN 语句填充¾l“果集,FETCH 从结果集˜q”回行。CLOSE 语句释放与游标关联的当前¾l“果集。DEALLOCATE 语句释放游标所使用的资源ã€?/p>

DECLARE CURSOR 语句的第一¿Uæ ¼å¼ä‹Éç”?SQL-92 è¯­æ³•å£°æ˜Žæ¸¸æ ‡è¡ŒäØ“ã€‚DECLARE CURSOR 的第二种格式使用 Transact-SQL 扩展åQŒä‹É您得以ä‹É用在 ODBC、ADO å’?DB-Library的数据库 API 游标函数中的相同游标¾cÕdž‹å®šä¹‰æ¸¸æ ‡ã€?/p>

不能æ·äh·†˜q™ä¸¤¿Uæ ¼å¼ã€‚如果在 CURSOR 关键字的前面指定 SCROLL æˆ?INSENSITIVE 关键字,则不能在 CURSOR å’?FOR select_statement 关键字之间ä‹É用ä“Q何关键字。如果在 CURSOR å’?FOR select_statement 关键字之间指定ä“Q何关键字åQŒåˆ™ä¸èƒ½åœ?CURSOR 关键字的前面指定 SCROLL æˆ?INSENSITIVEã€?/p>

如果使用 Transact-SQL 语法çš?DECLARE CURSOR 不指å®?READ_ONLY、OPTIMISTIC æˆ?SCROLL_LOCKSåQŒåˆ™é»˜è®¤è®„¡½®å¦‚下åQ?

如果 SELECT 语句不支持更斎ͼˆæƒé™ä¸å¤ŸåQŒè®¿é—®çš„˜qœç¨‹è¡¨ä¸æ”¯æŒæ›´æ–°åQŒç­‰½{‰ï¼‰åQŒåˆ™æ¸¸æ ‡æ˜?READ_ONLYã€?/p>


STATIC 和FAST_FORWARD 游标默认�READ_ONLY�/p>


DYNAMIC �KEYSET 游标默认�OPTIMISTIC�
游标名称只能由其å®?Transact-SQL 语句引用åQŒä¸èƒ½ç”±æ•°æ®åº?API 函数引用。例如,在声明游标后åQŒä¸èƒ½ä»Ž OLE DB、ODBC、ADO æˆ?DB-Library 函数或方法引用游标名¿U°ã€‚游标行不能通过 API 提取函数或方法提取,而只能由 Transact-SQL FETCH 语句提取ã€?/p>

在声明游标后åQŒå¯ä½¿ç”¨ä¸‹åˆ—¾pȝ»Ÿå­˜å‚¨˜q‡ç¨‹¼‹®å®šæ¸¸æ ‡çš„特性ã€?/p>

¾pȝ»Ÿå­˜å‚¨˜q‡ç¨‹ 描述
sp_cursor_list ˜q”回当前在连接上可视的游标列表及其特性ã€?
sp_describe_cursor 描述游标ç‰ÒŽ€§ï¼Œæ¯”如是只˜q›æ¸¸æ ‡è¿˜æ˜¯æ»šåŠ¨æ¸¸æ ‡ã€?
sp_describe_cursor_columns 描述游标¾l“果集中的列的特性ã€?
sp_describe_cursor_tables 描述游标所讉K—®çš„基表ã€?


变量可作为声明游标的 select_statement 的一部分使用。然而,在游标声明之后对那些变量的更改将不会å¯Òޏ¸æ ‡çš„æ“ä½œäº§ç”Ÿå½±å“ã€?/p>

权限
默认情况下,ž®?DECLARE CURSOR 权限授予å¯Òޏ¸æ ‡ä¸­æ‰€ä½¿ç”¨çš„视图、表和列æœ?SELECT 权限的ä“Q何用戗÷€?/p>

½CÞZ¾‹
A. 使用½Ž€å•游标和语法
打开该游标时所生成的结果集包括 pubs 数据库的 authors 表中的所有行和列。可以更新该游标åQŒå¯¹è¯¥æ¸¸æ ‡æ‰€åšçš„æ‰€æœ‰æ›´æ–°å’Œåˆ é™¤å‡åœ¨æå–中表现出来。因为没指定 SCROLL 选项åQŒFETCH NEXT 是唯一可用的提取选项ã€?/p>

DECLARE authors_cursor CURSOR
   FOR SELECT * FROM authors
OPEN authors_cursor
FETCH NEXT FROM authors_cursor

B. 使用嵌套游标生成报表输出
下例昄¡¤ºå¦‚ä½•åµŒå¥—æ¸¸æ ‡ä»¥ç”Ÿæˆå¤æ‚çš„æŠ¥è¡¨ã€‚äØ“æ¯ä¸ªä½œè€…å£°æ˜Žå†…éƒ¨æ¸¸æ ‡ã€?/p>

SET NOCOUNT ON

DECLARE @au_id varchar(11), @au_fname varchar(20), @au_lname varchar(40),
   @message varchar(80), @title varchar(80)

PRINT "-------- Utah Authors report --------"

DECLARE authors_cursor CURSOR FOR
SELECT au_id, au_fname, au_lname
FROM authors
WHERE state = "UT"
ORDER BY au_id

OPEN authors_cursor

FETCH NEXT FROM authors_cursor
INTO @au_id, @au_fname, @au_lname

WHILE @@FETCH_STATUS = 0
BEGIN
   PRINT " "
   SELECT @message = "----- Books by Author: " +
      @au_fname + " " + @au_lname

   PRINT @message

   -- Declare an inner cursor based  
   -- on au_id from the outer cursor.

   DECLARE titles_cursor CURSOR FOR
   SELECT t.title
   FROM titleauthor ta, titles t
   WHERE ta.title_id = t.title_id AND
   ta.au_id = @au_id   -- Variable value from the outer cursor

   OPEN titles_cursor
   FETCH NEXT FROM titles_cursor INTO @title

   IF @@FETCH_STATUS <> 0
      PRINT "         <<No Books>>"    

   WHILE @@FETCH_STATUS = 0
   BEGIN
     
      SELECT @message = "         " + @title
      PRINT @message
      FETCH NEXT FROM titles_cursor INTO @title
  
   END

   CLOSE titles_cursor
   DEALLOCATE titles_cursor
  
   -- Get the next author.
   FETCH NEXT FROM authors_cursor
   INTO @au_id, @au_fname, @au_lname
END

CLOSE authors_cursor
DEALLOCATE authors_cursor
GO

-------- Utah Authors report --------
 
----- Books by Author: Anne Ringer
         The Gourmet Microwave
         Is Anger the Enemy?
 
----- Books by Author: Albert Ringer
         Is Anger the Enemy?
         Life Without Fear



]]>
SQL SERVER中直接åó@环写入数æ?/title><link>http://www.aygfsteel.com/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.aygfsteel.com/rain1102/archive/2008/08/28/225202.html</guid><wfw:comment>http://www.aygfsteel.com/rain1102/comments/225202.html</wfw:comment><comments>http://www.aygfsteel.com/rain1102/archive/2008/08/28/225202.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/rain1102/comments/commentRss/225202.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/rain1102/services/trackbacks/225202.html</trackback:ping><description><![CDATA[<p>declare @i int<br /> set @i = 1<br /> while @i < 30<br /> begin<br />    insert into test (userid) values(@i)<br />    set @i = @i + 1<br /> end</p><img src ="http://www.aygfsteel.com/rain1102/aggbug/225202.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/rain1102/" target="_blank">Eric.Zhou</a> 2008-08-28 10:42 <a href="http://www.aygfsteel.com/rain1102/archive/2008/08/28/225202.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL查询按照子串排序http://www.aygfsteel.com/rain1102/archive/2008/07/16/215298.htmlEric.ZhouEric.ZhouWed, 16 Jul 2008 12:09:00 GMThttp://www.aygfsteel.com/rain1102/archive/2008/07/16/215298.htmlhttp://www.aygfsteel.com/rain1102/comments/215298.htmlhttp://www.aygfsteel.com/rain1102/archive/2008/07/16/215298.html#Feedback0http://www.aygfsteel.com/rain1102/comments/commentRss/215298.htmlhttp://www.aygfsteel.com/rain1102/services/trackbacks/215298.html 在DB2, MySQL, Oracleå’ŒPostgreSQLä¸? order by子句中ä‹É用substr函数:
    select ename, job from emp order by substr(job, length(job)-2)
在SQL Serverä¸? order by子句中ä‹É用substring函数:
    select ename, job from emp order by substring(job, len(job)-2, 2)


]]>
限制˜q”å›žçš„è¡Œæ•°å’Œä»Žè¡¨ä¸­éšæœø™¿”回n条记å½?/title><link>http://www.aygfsteel.com/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.aygfsteel.com/rain1102/archive/2008/07/15/215062.html</guid><wfw:comment>http://www.aygfsteel.com/rain1102/comments/215062.html</wfw:comment><comments>http://www.aygfsteel.com/rain1102/archive/2008/07/15/215062.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/rain1102/comments/commentRss/215062.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/rain1102/services/trackbacks/215062.html</trackback:ping><description><![CDATA[<p>在DB2ä¸? 使用FETCH FIRST子句限制˜q”回行数:<br />     <span style="color: red">select * from emp fetch first 5 rows only<br /> </span>使用RAND与ORDER BYå’ŒFETCH FIRST来获取随机条æ•?br />     <span style="color: #008000">select * from emp order by rand() fetch first 5 rows only<br /> </span><br /> 在MySQLå’ŒPostgreSQLä¸? 使用LIMIT:<br />     <span style="color: #ff0000">select * from emp limit 5<br /> </span>MySQLä¸­èŽ·å–éšæœø™¡Œæ•?<br />      <span style="color: #008000">select * from emp order by rand() limit 5<br /> </span>PostgreSQLä¸­èŽ·å–éšæœø™¡Œæ•?<br />      <span style="color: #008000">select * from emp order by random() limit 5<br /> </span><br /> 在Oracleä¸? 在WHERE子句中通过使用ROWNUM来限制行æ•?<br />     <span style="color: #ff0000">select * from emp where rownum <= 5<br /> </span>    <br />     <span style="color: #008000">select *<br />             from (<br />                 select ename, job from emp order by dbms_random.value()<br />             )<br />     where rownum <= 5<br /> </span>在SQL Serverä¸? 使用TOP来限制返回行æ•?<br />     <span style="color: #ff0000">select top 5 * from emp<br /> </span>    <br />     <span style="color: #008000">select top 5 ename, job from emp order by newid()</span></p><img src ="http://www.aygfsteel.com/rain1102/aggbug/215062.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/rain1102/" target="_blank">Eric.Zhou</a> 2008-07-15 20:50 <a href="http://www.aygfsteel.com/rain1102/archive/2008/07/15/215062.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>SQL中连接列值和在SELECT语句中ä‹É用条仉™€»è¾‘http://www.aygfsteel.com/rain1102/archive/2008/07/14/214821.htmlEric.ZhouEric.ZhouMon, 14 Jul 2008 13:16:00 GMThttp://www.aygfsteel.com/rain1102/archive/2008/07/14/214821.htmlhttp://www.aygfsteel.com/rain1102/comments/214821.htmlhttp://www.aygfsteel.com/rain1102/archive/2008/07/14/214821.html#Feedback0http://www.aygfsteel.com/rain1102/comments/commentRss/214821.htmlhttp://www.aygfsteel.com/rain1102/services/trackbacks/214821.html 使用concat函数˜qžæŽ¥æ¥è‡ªå¤šä¸ªåˆ—的数å€? 在DB2, Oracleå’ŒPostgreSQLä¸?"||"是concat函数的简写方å¼?"+"是SQL Server中的½Ž€å†™æ–¹å¼?
select name||' is a '||type as msg from animal where ...
select name+' is a '+type as msg from animal where...
select concat(name, ' is a ', type) as msg from animal where ...

2.在SELECT语句中ä‹É用条仉™€»è¾‘
case表达式可以针å¯ÒŽŸ¥è¯¢çš„˜q”回值执行条仉™€»è¾‘. 可以¾l™case表达式取别名, 使结果集更易è¯? else子句是可选的, 如果没有使用else, 对于不满­‘›_ˆ¤æ–­æ¡ä»¶çš„è¡? case表达式会˜q”回NULL.
select ename, sal,
   case when sal<=2000 then 'UNDERPAID'
   case when sal>=4000 then 'OVERPAID'
          else 'OK'
   end as status
from emp

]]>
SQL Server修改è¡?/title><link>http://www.aygfsteel.com/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.aygfsteel.com/rain1102/archive/2008/06/18/208797.html</guid><wfw:comment>http://www.aygfsteel.com/rain1102/comments/208797.html</wfw:comment><comments>http://www.aygfsteel.com/rain1102/archive/2008/06/18/208797.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/rain1102/comments/commentRss/208797.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/rain1102/services/trackbacks/208797.html</trackback:ping><description><![CDATA[IF NOT EXISTS (SELECT * FROM syscolumns WHERE id=object_id('Book') AND name='createDate')  <br /> ALTER TABLE Book ADD createDate datetime NOT NULL<br /> GO<br /> <br /> 首先要判断表中是否存在该字段,如果不存在再æ·ÕdŠ æˆ–è€…ä¿®æ”¹è¯¥å­—æ®µ.<img src ="http://www.aygfsteel.com/rain1102/aggbug/208797.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/rain1102/" target="_blank">Eric.Zhou</a> 2008-06-18 10:44 <a href="http://www.aygfsteel.com/rain1102/archive/2008/06/18/208797.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>¾l´æŠ¤SQL Server数据库的一些常用SQL(è½?http://www.aygfsteel.com/rain1102/archive/2008/05/13/200246.htmlEric.ZhouEric.ZhouTue, 13 May 2008 09:15:00 GMThttp://www.aygfsteel.com/rain1102/archive/2008/05/13/200246.htmlhttp://www.aygfsteel.com/rain1102/comments/200246.htmlhttp://www.aygfsteel.com/rain1102/archive/2008/05/13/200246.html#Feedback0http://www.aygfsteel.com/rain1102/comments/commentRss/200246.htmlhttp://www.aygfsteel.com/rain1102/services/trackbacks/200246.html1.如何创徏数据åº?/p>

CREATE DATABASE student

2.如何删除数据�/p>

DROP DATABASE student

3.如何备䆾数据库到¼‚ç›˜æ–‡äšg

BACKUP DATABASE student to disk=´c:\1234.bak´

4.如何从磁盘文件还原数据库

RESTORE DATABASE studnet FROM DISK = ´c:\1234.bak´

5.怎样创徏表?

CREATE TABLE Students (
    ID int IDENTITY ( 1, 1), --自增字段,基数1,步长1
    StudentID char (4) NOT NULL ,
    Name char (10) NOT NULL ,
    Age int NULL ,
    Birthday datetime NULL,
    CONSTRAINT PK_Students PRIMARY KEY (StudentID)  --讄¡½®ä¸»é”®
)

CREATE TABLE Subjects (
    ID int IDENTITY ( 1, 1), --自增字段,基数1,步长1
    ClassID char (4) NOT NULL ,
    ClassName char (10) NOT NULL,
    CONSTRAINT PK_Subjects PRIMARY KEY (ClassID)    --讄¡½®ä¸»é”®
)

CREATE TABLE Scores (
    ID int IDENTITY ( 1, 1), --自增字段,基数1,步长1
    StudentID char (4) NOT NULL ,
    ClassID char (4) NOT NULL ,
    Score float NOT NULL,
    CONSTRAINT FK_Scores_Students FOREIGN KEY (StudentID) REFERENCES Students(StudentID), --讄¡½®å¤–é”®
    CONSTRAINT FK_Scores_Subjects FOREIGN KEY (ClassID) REFERENCES Subjects(ClassID), --讄¡½®å¤–é”®
    CONSTRAINT PK_Scores PRIMARY KEY (StudentID,ClassID) --讄¡½®ä¸»é”®
)

6.怎样删除表?

DROP TABLE Students

7.怎样创徏视图åQ?/p>

CREATE VIEW s_s_s
AS
SELECT Students.Name, Subjects.ClassName, Scores.Score
FROM Scores INNER JOIN
      Students ON Scores.StudentID = Students.StudentID INNER JOIN
      Subjects ON Scores.ClassID = Subjects.ClassID


8.怎样删除视图åQ?/p>

DROP VIEW s_s_s

9.如何创徏存储˜q‡ç¨‹?

CREATE PROCEDURE GetStudent
@age INT,
@birthday DATETIME
AS
SELECT *
FROM students
WHERE Age = @age AND Birthday = @birthday
GO

10.如何删除存储˜q‡ç¨‹?

DROP PROCEDURE GetStudent

11.如何创徏触发�

CREATE TRIGGER reminder
ON Students
FOR INSERT, UPDATE, DELETE
AS
   EXEC master..xp_sendmail ´MaryM´,
      ´Don´´t forget to print a report for the distributors.´
GO

12.如何删除触发�

DROP TRIGGER reminder

13.如何创徏索引?

CREATE UNIQUE INDEX IX_Students ON Students (Name)

14.如何删除索引?

DROP INDEX Students.IX_Students

15.怎样¾l™è¡¨æ·ÕdŠ å­—æ®µåQ?/p>

ALTER TABLE Students ADD Address varchar (50) NULL

16.怎样删除表中某个字段åQ?/p>

ALTER TABLE Students DROP COLUMN Address

17.如何讄¡½®åˆ—的标识属æ€?

没找到办�/p>

18.如何åŽÀLŽ‰åˆ—çš„æ ‡è¯†å±žæ€?

没有扑ֈ°å¥½çš„æ–ÒŽ³•,只能是先æ·ÕdР䏀åˆ?然后把标识列的值更新到新加入的åˆ?删除标识åˆ?再用与标识列相同的名字类型添加一åˆ?用前面加入的列更新该åˆ?如果该标识列是其他表的外é”?˜q˜è¦å…ˆåˆ é™¤å¤–键约æ?很麻çƒ?谁有好的办法,˜q˜è¯·å‘Šè¯‰æˆ?

19.如何重设标识列的标识¿Uå­?

DBCC CHECKIDENT (Student, RESEED, 1)

20.怎样¾l™è¡¨åŠ ä¸Šä¸»é”®åQ?/p>

ALTER TABLE Scores ADD CONSTRAINT PK_Scores PRIMARY KEY (StudentID,ClassID)

21.怎样删除表的主键åQ?/p>

ALTER TABLE Scores DROP CONSTRAINT PK_Scores

22.怎样¾l™è¡¨æ·ÕdŠ ä¸€ä¸ªå¤–é”®ï¼Ÿ

ALTER TABLE Scores ADD CONSTRAINT FK_Scores_Students FOREIGN KEY (StudentID) REFERENCES Students (StudentID) ON DELETE CASCADE

23.怎样删除表的一个外键?

ALTER TABLE Scores DROP CONSTRAINT FK_Scores_Students

24.怎样¾l™å­—ŒDµåŠ ä¸ŠCHECK¾U¦æŸåQ?/p>

ALTER TABLE Students ADD CONSTRAINT CK_Students CHECK (Age > 0)

25.怎样åŽÀLŽ‰å­—æ®µä¸Šçš„CHECK¾U¦æŸåQ?/p>

ALTER TABLE Students DROP CONSTRAINT CK_Students

26.怎样¾l™å­—ŒDµè®¾¾|®é»˜è®¤å€û|¼Ÿ

ALTER TABLE Students ADD CONSTRAINT DF_Students_Age DEFAULT (18) FOR Age

27.怎样¿UÕdŽ»å­—æ®µçš„é»˜è®¤å€û|¼Ÿ

ALTER TABLE Students DROP CONSTRAINT DF_Students_Age

28.修改字段的类型及非空¾U¦æŸ

ALTER TABLE Students ALTER COLUMN Age char (10) null
ALTER TABLE Students ALTER COLUMN Age int not null



]]>
SET XACT_ABORThttp://www.aygfsteel.com/rain1102/archive/2008/05/06/198683.htmlEric.ZhouEric.ZhouTue, 06 May 2008 05:29:00 GMThttp://www.aygfsteel.com/rain1102/archive/2008/05/06/198683.htmlhttp://www.aygfsteel.com/rain1102/comments/198683.htmlhttp://www.aygfsteel.com/rain1102/archive/2008/05/06/198683.html#Feedback0http://www.aygfsteel.com/rain1102/comments/commentRss/198683.htmlhttp://www.aygfsteel.com/rain1102/services/trackbacks/198683.htmlSET XACT_ABORT

指定å½?Transact-SQL 语句产生˜qè¡Œæ—‰™”™è¯¯æ—¶åQŒMicrosoft® SQL Server™ 是否自动回滚当前事务ã€?/p>

语法

SET XACT_ABORT { ON | OFF }

注释

å½?SET XACT_ABORT ä¸?ON æ—Óž¼Œå¦‚æžœ Transact-SQL 语句产生˜qè¡Œæ—‰™”™è¯¯ï¼Œæ•´ä¸ªäº‹åŠ¡ž®†ç»ˆæ­¢åÆˆå›žæ»šã€‚äØ“ OFF æ—Óž¼Œåªå›žæ»šäñ”生错误的 Transact-SQL 语句åQŒè€Œäº‹åС将¾l§ç®‹˜q›è¡Œå¤„理。编译错误(如语法错误)不受 SET XACT_ABORT 的媄响ã€?/p>

对于大多æ•?OLE DB 提供½E‹åºåQˆåŒ…æ‹?SQL ServeråQ‰ï¼Œé𐿀§æˆ–昑ּäº‹åŠ¡ä¸­çš„æ•°æ®ä¿®æ”¹è¯­å¥å¿…é¡»ž®?XACT_ABORT 讄¡½®ä¸?ON。唯一不需要该选项的情冉|˜¯æä¾›½E‹åºæ”¯æŒåµŒå¥—事务时。有å…Ïx›´å¤šä¿¡æ¯ï¼Œè¯·å‚è§?a href="javascript:hhobj_1.Click()">分布式查è¯?/a>å’?a href="javascript:hhobj_2.Click()">分布式事åŠ?/a>ã€?

SET XACT_ABORT 的设¾|®æ˜¯åœ¨æ‰§è¡Œæˆ–˜qè¡Œæ—¶è®¾¾|®ï¼Œè€Œä¸æ˜¯åœ¨åˆ†æžæ—¶è®¾¾|®ã€?/p>

½CÞZ¾‹

䏋例坯D‡´åœ¨å«æœ‰å…¶å®?Transact-SQL 语句的事务中发生˜qåå¤–键错误。在½W¬ä¸€ä¸ªè¯­å¥é›†ä¸­äñ”生错误,但其它语句均成功执行且事务成功提交。在½W¬äºŒä¸ªè¯­å¥é›†ä¸­ï¼ŒSET XACT_ABORT 讄¡½®ä¸?ONã€‚è¿™å¯ÆD‡´è¯­å¥é”™è¯¯ä½¿æ‰¹å¤„理¾lˆæ­¢åQŒåƈ使事务回滚ã€?

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


]]>
SQL Server 不支持change修改表字ŒD?/title><link>http://www.aygfsteel.com/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.aygfsteel.com/rain1102/archive/2008/04/17/193713.html</guid><wfw:comment>http://www.aygfsteel.com/rain1102/comments/193713.html</wfw:comment><comments>http://www.aygfsteel.com/rain1102/archive/2008/04/17/193713.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.aygfsteel.com/rain1102/comments/commentRss/193713.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/rain1102/services/trackbacks/193713.html</trackback:ping><description><![CDATA[今天遇到一个问题,ž®±æ˜¯éœ€è¦ä¿®æ”¹è¡¨å­—段名,要是别的数据库还好处理,直接用changež®±å¯ä»¥äº†åQ?br /> <span style="color: red">alter table users change column name username varchar(50)<br /> </span>但SQL Server不支持此命ä×oã€?br /> 所以只能用存储˜q‡ç¨‹äº†ï¼š<br /> 比如我要修改user表里面的nameåQŒæ”¹ä¸ºusernameåQŒåˆ™å¯ä»¥ç”?br /> <span style="color: #008000">exec sp_rename 'users.name','username','column'</span><img src ="http://www.aygfsteel.com/rain1102/aggbug/193713.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/rain1102/" target="_blank">Eric.Zhou</a> 2008-04-17 12:53 <a href="http://www.aygfsteel.com/rain1102/archive/2008/04/17/193713.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>判断sql执行所èŠÞqš„æ—‰™—´åQˆç²¾åº¦äؓ毫秒åQ?/title><link>http://www.aygfsteel.com/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.aygfsteel.com/rain1102/archive/2007/09/28/149059.html</guid><wfw:comment>http://www.aygfsteel.com/rain1102/comments/149059.html</wfw:comment><comments>http://www.aygfsteel.com/rain1102/archive/2007/09/28/149059.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/rain1102/comments/commentRss/149059.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/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"> </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"> </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"> </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">()       <br /> </span><span style="color: #0000ff"><span style="color: #0000ff">SELECT</span><span style="color: #000000"> </span></span><span style="color: #008000">@chaju</span><span style="color: #000000"> </span><span style="color: #808080">=</span><span style="color: #000000"> </span><span style="color: #ff00ff">datediff</span><span style="color: #000000">(Millisecond, </span><span style="color: #008000">@begin</span><span style="color: #000000">, </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"> </span></span><img src ="http://www.aygfsteel.com/rain1102/aggbug/149059.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/rain1102/" target="_blank">Eric.Zhou</a> 2007-09-28 13:02 <a href="http://www.aygfsteel.com/rain1102/archive/2007/09/28/149059.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据库驱动程序和URL http://www.aygfsteel.com/rain1102/archive/2007/01/19/94911.htmlEric.ZhouEric.ZhouFri, 19 Jan 2007 05:05:00 GMThttp://www.aygfsteel.com/rain1102/archive/2007/01/19/94911.htmlhttp://www.aygfsteel.com/rain1102/comments/94911.htmlhttp://www.aygfsteel.com/rain1102/archive/2007/01/19/94911.html#Feedback0http://www.aygfsteel.com/rain1102/comments/commentRss/94911.htmlhttp://www.aygfsteel.com/rain1102/services/trackbacks/94911.html驱动½E‹åº
URL

MS SQL Server2000
com.microsoft.jdbc.sqlserver.SQLServerDriver
jdbc:microsoft:sqlserver://[ip]:[port];user=[user];passwoerd=[password]

JDBC-ODBC
sun.jdbc.odbc.JdbcOdbcDriver
jdbc:odbc:[odbcsource]

Oracle oci8
oracle.jdbc.driver.OracleDriver
jdbc:oracle:oci8:@[sid]

Oracle thin Driver
oracle.jdbc.driver.OracleDriver
jdbc:oracle:thin:@[ip]:[port]:[sid]

Cloudscape
COM.cloudscape.core.JDBCDriver
Jdbc:cloudscape:database

MySQL
org.git.mm.mysql.Driver
jdbc:mysql://ip/database?user=?&password=?


]]>
SQL语句http://www.aygfsteel.com/rain1102/archive/2006/11/23/82935.htmlEric.ZhouEric.ZhouThu, 23 Nov 2006 01:08:00 GMThttp://www.aygfsteel.com/rain1102/archive/2006/11/23/82935.htmlhttp://www.aygfsteel.com/rain1102/comments/82935.htmlhttp://www.aygfsteel.com/rain1102/archive/2006/11/23/82935.html#Feedback0http://www.aygfsteel.com/rain1102/comments/commentRss/82935.htmlhttp://www.aygfsteel.com/rain1102/services/trackbacks/82935.html1.
删除表的重复记录
 
如果记录完全相同才算重复记录 , 那么 : (sql server2000 下测试通过 )
 select distinct * into #tmpp from person
 delete from person
 insert into person select * from #tmpp
 drop table #tmpp
 
如果æœ?/span> id 主键 ( æ•°å­— , 自增 1 的那¿U?/span> ), 那么 :(sql server2000 下测试通过 )
 delete from person where id not in
 (select id=min(id) from person group by UserName)
2.复制表(òq¶ä¸”复制记录åQ?/strong>
  select * into persontwo from personåQˆåªå¤åˆ¶è¡¨ç»“构)
  insert into persontwo select UserName,Address,Content from personåQˆæ’入记录)
3.获取表中最ž®æœªä½¿ç”¨çš„ID
  SELECT (CASE WHEN EXISTS(SELECT * FROM person b WHERE b.Id = 1) THEN MIN(Id) + 1 ELSE 1 END) as Id
 FROM  person
 WHERE NOT Id IN (SELECT a.Id - 1 FROM person a)

4.delete from tablea & truncate table tablea的区�/span>

  truncate语句执行速度å¿?/span>,占资源少,òq¶ä¸”只记录页删除的日志;
 deleteå¯Òޝæ¡è®°å½•的删除均需要记录日å¿?/span>



]]>˜qžæŽ¥SQL Serverå’ŒOraclehttp://www.aygfsteel.com/rain1102/archive/2006/11/17/81719.htmlEric.ZhouEric.ZhouFri, 17 Nov 2006 03:06:00 GMThttp://www.aygfsteel.com/rain1102/archive/2006/11/17/81719.htmlhttp://www.aygfsteel.com/rain1102/comments/81719.htmlhttp://www.aygfsteel.com/rain1102/archive/2006/11/17/81719.html#Feedback0http://www.aygfsteel.com/rain1102/comments/commentRss/81719.htmlhttp://www.aygfsteel.com/rain1102/services/trackbacks/81719.htmlOracle
url=jdbc:oracle:thin:@192.168.1.110:1521:zhongxin
driver=oracle.jdbc.driver.OracleDriver
username=xxb
password=xxb

SQLServer
url=jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=hagov
drive=com.microsoft.jdbc.sqlserver.SQLServerDriver
username=sa
password=sa
dialect=org.hibernate.dialect.SQLServerDialect



]]>
Java中连接数据库åQˆSQL ServeråQ‰Database¾c?/title><link>http://www.aygfsteel.com/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.aygfsteel.com/rain1102/archive/2006/10/18/75879.html</guid><wfw:comment>http://www.aygfsteel.com/rain1102/comments/75879.html</wfw:comment><comments>http://www.aygfsteel.com/rain1102/archive/2006/10/18/75879.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.aygfsteel.com/rain1102/comments/commentRss/75879.html</wfw:commentRss><trackback:ping>http://www.aygfsteel.com/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'">¾c?/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.aygfsteel.com/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.aygfsteel.com/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.aygfsteel.com/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.aygfsteel.com/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"> <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"> <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">    </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">    </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">     </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">     </span>Context envCtx=(Context)initCtx.lookup(“java:comp/env”);<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">     </span>DataSource ds=(DataSource)envCtx.lookup(“jdbc/SqlServer”);<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">      </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">      </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">      </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">       </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">       </span>System.out.println(“Create Connection Error!”);<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">       </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"> <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">  </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">     </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">     </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">           </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">           </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">     </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">     </span>System.out.println(“Close Connection Error!”);<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">     </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"> <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">       </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">    </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">    </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">     </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">     </span>System.out.println(“Execute SQL:’”+sql+”’ Error!’”);<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">     </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">     </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">     </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"> <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">        </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">    </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">                    </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">     </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">     </span>System.out.println(“Execute SQL:’”+sql+”’ Error!’”);<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">     </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">     </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">     </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"> <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">      </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">      </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">      </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">      </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">      </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">     </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">     </span>System.out.println(“Execute SQL:’”+sql+”’ Error!’”);<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">     </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">     </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">     </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">     </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">       </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">     </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">     </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">     </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">     </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">     </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'">保存ä»ÖM½•更改òq¶ç»“束当前事务。它也可能启动新事务</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">  </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 id="wmqeeuq" 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'">回滚操作后的更改åQŒä‹É之成为永久的更改åQŒåƈ释放</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'">当前保持的ä“Q何数据库锁ã€?/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">       </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">                     </span>m_conn.commit();<span style="mso-spacerun: yes">  </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">     </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">     </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">     </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">     </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'">取消当前事务中所作的ä»ÖM½•更改òq¶ç»“束事务。它也可能启动新事务ã€?/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">       </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">     </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">     </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"> </span> <span style="mso-spacerun: yes">    </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">     </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">     </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.aygfsteel.com/rain1102/aggbug/75879.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.aygfsteel.com/rain1102/" target="_blank">Eric.Zhou</a> 2006-10-18 13:31 <a href="http://www.aygfsteel.com/rain1102/archive/2006/10/18/75879.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <a href="http://www.aygfsteel.com/" title="狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频">狠狠久久亚洲欧美专区_中文字幕亚洲综合久久202_国产精品亚洲第五区在线_日本免费网站视频</a> </div> </footer> Ö÷Õ¾Ö©Öë³ØÄ£°å£º <a href="http://" target="_blank">¬ÊÏÏØ</a>| <a href="http://" target="_blank">ÀË¿¨×ÓÏØ</a>| <a href="http://" target="_blank">ÑŽ­ÏØ</a>| <a href="http://" target="_blank">ÃöÇåÏØ</a>| <a href="http://" target="_blank">ÁÙ°²ÊÐ</a>| <a href="http://" target="_blank">Íâ»ã</a>| <a href="http://" target="_blank">À³ÑôÊÐ</a>| <a href="http://" target="_blank">ÔªÄ±ÏØ</a>| <a href="http://" target="_blank">ð¢É½ÏØ</a>| <a href="http://" target="_blank">ÆîÃÅÏØ</a>| <a href="http://" target="_blank">°¢°Í¸ÂÆì</a>| <a href="http://" target="_blank">¹âÔóÏØ</a>| <a href="http://" target="_blank">ºôºÍºÆÌØÊÐ</a>| <a href="http://" target="_blank">Î÷²ýÊÐ</a>| <a href="http://" target="_blank">È«ÖÝÏØ</a>| <a href="http://" target="_blank">º×·åÏØ</a>| <a href="http://" target="_blank">ÄϾ©ÊÐ</a>| <a href="http://" target="_blank">ÌØ¿ËË¹ÏØ</a>| <a href="http://" target="_blank">ÇåË®ÏØ</a>| <a href="http://" target="_blank">Î÷²ýÊÐ</a>| <a href="http://" target="_blank">½­ÒõÊÐ</a>| <a href="http://" target="_blank">°ÍÀï</a>| <a href="http://" target="_blank">´ó×ãÏØ</a>| <a href="http://" target="_blank">Ë«·åÏØ</a>| <a href="http://" target="_blank">¸ßÒØÏØ</a>| <a href="http://" target="_blank">¼ÎÀèÏØ</a>| <a href="http://" target="_blank">Íþº£ÊÐ</a>| <a href="http://" target="_blank">Áê´¨ÏØ</a>| <a href="http://" target="_blank">ÒË·áÏØ</a>| <a href="http://" target="_blank">½ð²ýÊÐ</a>| <a href="http://" target="_blank">»³ÈÊÏØ</a>| <a href="http://" target="_blank">ÌÆºÓÏØ</a>| <a href="http://" target="_blank">ÓñÊ÷ÏØ</a>| <a href="http://" target="_blank">¾®ÚêÏØ</a>| <a href="http://" target="_blank">Áú½­ÏØ</a>| <a href="http://" target="_blank">ÆÜϼÊÐ</a>| <a href="http://" target="_blank">µÇ·âÊÐ</a>| <a href="http://" target="_blank">ÑôÐÂÏØ</a>| <a href="http://" target="_blank">»ñ¼ÎÏØ</a>| <a href="http://" target="_blank">¸§ÖÝÊÐ</a>| <a href="http://" target="_blank">ÓñÉ½ÏØ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>