|
|
ÏÂÁÐÓï¾ä²¿·ÖÊÇMssqlÓï¾ä£¬²»¿ÉÒÔÔÚaccessÖÐʹÓá£
SQL·ÖÀࣺ DDL¡ªÊý¾Ý¶¨ÒåÓïÑÔ(CREATE£¬ALTER£¬DROP£¬DECLARE) DML¡ªÊý¾Ý²Ù×ÝÓïÑÔ(SELECT£¬DELETE£¬UPDATE£¬INSERT) DCL¡ªÊý¾Ý¿ØÖÆÓïÑÔ(GRANT£¬REVOKE£¬COMMIT£¬ROLLBACK)
Ê×ÏÈ,¼òÒª½éÉÜ»ù´¡Óï¾ä£º 1¡¢ËµÃ÷£º´´½¨Êý¾Ý¿â CREATE DATABASE database-name 2¡¢ËµÃ÷£ºÉ¾³ýÊý¾Ý¿â drop database dbname 3¡¢ËµÃ÷£º±¸·Ýsql server --- ´´½¨ ±¸·ÝÊý¾ÝµÄ device USE master EXEC sp_addumpdevice 'disk', 'testBack', 'c:\mssql7backup\MyNwind_1.dat' --- ¿ªÊ¼ ±¸·Ý BACKUP DATABASE pubs TO testBack 4¡¢ËµÃ÷£º´´½¨Ð±í create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..) ¸ù¾ÝÒÑÓÐµÄ±í´´½¨ÐÂ±í£º A£ºcreate table tab_new like tab_old (ʹÓÃ¾É±í´´½¨Ð±í) B£ºcreate table tab_new as select col1,col2¡ from tab_old definition only 5¡¢ËµÃ÷£ºÉ¾³ýбídrop table tabname 6¡¢ËµÃ÷£ºÔö¼ÓÒ»¸öÁÐ Alter table tabname add column col type ×¢£ºÁÐÔö¼Óºó½«²»ÄÜɾ³ý¡£DB2ÖÐÁмÓÉϺóÊý¾ÝÀàÐÍÒ²²»Äܸı䣬ΨһÄܸıäµÄÊÇÔö¼ÓvarcharÀàÐ͵ij¤¶È¡£ 7¡¢ËµÃ÷£ºÌí¼ÓÖ÷¼ü£º Alter table tabname add primary key(col) ˵Ã÷£ºÉ¾³ýÖ÷¼ü£º Alter table tabname drop primary key(col) 8¡¢ËµÃ÷£º´´½¨Ë÷Òý£ºcreate [unique] index idxname on tabname(col¡.) ɾ³ýË÷Òý£ºdrop index idxname ×¢£ºË÷ÒýÊDz»¿É¸ü¸ÄµÄ£¬Ïë¸ü¸Ä±ØÐëɾ³ýÖØÐ½¨¡£ 9¡¢ËµÃ÷£º´´½¨ÊÓͼ£ºcreate view viewname as select statement ɾ³ýÊÓͼ£ºdrop view viewname 10¡¢ËµÃ÷£º¼¸¸ö¼òµ¥µÄ»ù±¾µÄsqlÓï¾ä Ñ¡Ôñ£ºselect * from table1 where ·¶Î§ ²åÈ룺insert into table1(field1,field2) values(value1,value2) ɾ³ý£ºdelete from table1 where ·¶Î§ ¸üУºupdate table1 set field1=value1 where ·¶Î§ ²éÕÒ£ºselect * from table1 where field1 like ¡¯%value1%¡¯ ---likeµÄÓï·¨ºÜ¾«Ã²é×ÊÁÏ! ÅÅÐò£ºselect * from table1 order by field1,field2 [desc] ×ÜÊý£ºselect count * as totalcount from table1 ÇóºÍ£ºselect sum(field1) as sumvalue from table1 ƽ¾ù£ºselect avg(field1) as avgvalue from table1 ×î´ó£ºselect max(field1) as maxvalue from table1 ×îС£ºselect min(field1) as minvalue from table1 11¡¢ËµÃ÷£º¼¸¸ö¸ß¼¶²éѯÔËËã´Ê A£º UNION ÔËËã·û UNION ÔËËã·ûͨ¹ý×éºÏÆäËûÁ½¸ö½á¹û±í£¨ÀýÈç TABLE1 ºÍ TABLE2£©²¢ÏûÈ¥±íÖÐÈκÎÖØ¸´ÐжøÅÉÉú³öÒ»¸ö½á¹û±í¡£µ± ALL Ëæ UNION Ò»ÆðʹÓÃʱ£¨¼´ UNION ALL£©£¬²»Ïû³ýÖØ¸´ÐС£Á½ÖÖÇé¿öÏ£¬ÅÉÉú±íµÄÿһÐв»ÊÇÀ´×Ô TABLE1 ¾ÍÊÇÀ´×Ô TABLE2¡£ B£º EXCEPT ÔËËã·û EXCEPT ÔËËã·ûͨ¹ý°üÀ¨ËùÓÐÔÚ TABLE1 Öе«²»ÔÚ TABLE2 ÖеÄÐв¢Ïû³ýËùÓÐÖØ¸´ÐжøÅÉÉú³öÒ»¸ö½á¹û±í¡£µ± ALL Ëæ EXCEPT Ò»ÆðʹÓÃʱ (EXCEPT ALL)£¬²»Ïû³ýÖØ¸´ÐС£ C£º INTERSECT ÔËËã·û INTERSECT ÔËËã·ûͨ¹ýÖ»°üÀ¨ TABLE1 ºÍ TABLE2 Öж¼ÓеÄÐв¢Ïû³ýËùÓÐÖØ¸´ÐжøÅÉÉú³öÒ»¸ö½á¹û±í¡£µ± ALL Ëæ INTERSECT Ò»ÆðʹÓÃʱ (INTERSECT ALL)£¬²»Ïû³ýÖØ¸´ÐС£ ×¢£ºÊ¹ÓÃÔËËã´ÊµÄ¼¸¸ö²éѯ½á¹ûÐбØÐëÊÇÒ»Öµġ£ 12¡¢ËµÃ÷£ºÊ¹ÓÃÍâÁ¬½Ó A¡¢left outer join£º ×óÍâÁ¬½Ó£¨×óÁ¬½Ó£©£º½á¹û¼¯¼¸°üÀ¨Á¬½Ó±íµÄÆ¥ÅäÐУ¬Ò²°üÀ¨×óÁ¬½Ó±íµÄËùÓÐÐС£ SQL: select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c B£ºright outer join: ÓÒÍâÁ¬½Ó(ÓÒÁ¬½Ó)£º½á¹û¼¯¼È°üÀ¨Á¬½Ó±íµÄÆ¥ÅäÁ¬½ÓÐУ¬Ò²°üÀ¨ÓÒÁ¬½Ó±íµÄËùÓÐÐС£ C£ºfull outer join£º È«ÍâÁ¬½Ó£º²»½ö°üÀ¨·ûºÅÁ¬½Ó±íµÄÆ¥ÅäÐУ¬»¹°üÀ¨Á½¸öÁ¬½Ó±íÖеÄËùÓмǼ¡£
Æä´Î£¬´ó¼ÒÀ´¿´Ò»Ð©²»´íµÄsqlÓï¾ä 1¡¢ËµÃ÷£º¸´ÖƱí(Ö»¸´Öƽṹ,Ô´±íÃû£ºa бíÃû£ºb) (Access¿ÉÓÃ) ·¨Ò»£ºselect * into b from a where 1<>1 ·¨¶þ£ºselect top 0 * into b from a
2¡¢ËµÃ÷£º¿½±´±í(¿½±´Êý¾Ý,Ô´±íÃû£ºa Ä¿±ê±íÃû£ºb) (Access¿ÉÓÃ) insert into b(a, b, c) select d,e,f from b;
3¡¢ËµÃ÷£º¿çÊý¾Ý¿âÖ®¼ä±íµÄ¿½±´(¾ßÌåÊý¾ÝʹÓþø¶Ô·¾¶) (Access¿ÉÓÃ) insert into b(a, b, c) select d,e,f from b in ¡®¾ßÌåÊý¾Ý¿â¡¯ where Ìõ¼þ Àý×Ó£º..from b in '"&Server.MapPath(".")&"\data.mdb" &"' where..
4¡¢ËµÃ÷£º×Ó²éѯ(±íÃû1£ºa ±íÃû2£ºb) select a,b,c from a where a IN (select d from b ) »òÕß: select a,b,c from a where a IN (1,2,3)
5¡¢ËµÃ÷£ºÏÔʾÎÄÕ¡¢Ìá½»È˺Í×îºó»Ø¸´Ê±¼ä select a.title,a.username,b.adddate from table a,(select max(adddate) adddate from table where table.title=a.title) b
6¡¢ËµÃ÷£ºÍâÁ¬½Ó²éѯ(±íÃû1£ºa ±íÃû2£ºb) select a.a, a.b, a.c, b.c, b.d, b.f from a LEFT OUT JOIN b ON a.a = b.c
7¡¢ËµÃ÷£ºÔÚÏßÊÓͼ²éѯ(±íÃû1£ºa ) select * from (SELECT a,b,c FROM a) T where t.a > 1;
8¡¢ËµÃ÷£ºbetweenµÄÓ÷¨,betweenÏÞÖÆ²éѯÊý¾Ý·¶Î§Ê±°üÀ¨Á˱߽çÖµ,not between²»°üÀ¨ select * from table1 where time between time1 and time2 select a,b,c, from table1 where a not between ÊýÖµ1 and ÊýÖµ2
9¡¢ËµÃ÷£ºin µÄʹÓ÷½·¨ select * from table1 where a [not] in (¡®Öµ1¡¯,¡¯Öµ2¡¯,¡¯Öµ4¡¯,¡¯Öµ6¡¯)
10¡¢ËµÃ÷£ºÁ½ÕŹØÁª±í£¬É¾³ýÖ÷±íÖÐÒѾÔÚ¸±±íÖÐûÓеÄÐÅÏ¢ delete from table1 where not exists ( select * from table2 where table1.field1=table2.field1 )
11¡¢ËµÃ÷£ºËıíÁª²éÎÊÌ⣺ select * from a left inner join b on a.a=b.b right inner join c on a.a=c.c inner join d on a.a=d.d where .....
12¡¢ËµÃ÷£ºÈճ̰²ÅÅÌáǰÎå·ÖÖÓÌáÐÑ SQL: select * from Èճ̰²ÅÅ where datediff('minute',f¿ªÊ¼Ê±¼ä,getdate())>5
13¡¢ËµÃ÷£ºÒ»Ìõsql Óï¾ä¸ã¶¨Êý¾Ý¿â·ÖÒ³ select top 10 b.* from (select top 20 Ö÷¼ü×Ö¶Î,ÅÅÐò×Ö¶Î from ±íÃû order by ÅÅÐò×Ö¶Î desc) a,±íÃû b where b.Ö÷¼ü×Ö¶Î = a.Ö÷¼ü×Ö¶Î order by a.ÅÅÐò×Ö¶Î
14¡¢ËµÃ÷£ºÇ°10Ìõ¼Ç¼ select top 10 * form table1 where ·¶Î§
15¡¢ËµÃ÷£ºÑ¡ÔñÔÚÿһ×ébÖµÏàͬµÄÊý¾ÝÖжÔÓ¦µÄa×î´óµÄ¼Ç¼µÄËùÓÐÐÅÏ¢(ÀàËÆÕâÑùµÄÓ÷¨¿ÉÒÔÓÃÓÚÂÛ̳ÿÔÂÅÅÐаñ,ÿÔÂÈÈÏú²úÆ··ÖÎö,°´¿ÆÄ¿³É¼¨ÅÅÃû,µÈµÈ.) select a,b,c from tablename ta where a=(select max(a) from tablename tb where tb.b=ta.b)
16¡¢ËµÃ÷£º°üÀ¨ËùÓÐÔÚ TableA Öе«²»ÔÚ TableBºÍTableC ÖеÄÐв¢Ïû³ýËùÓÐÖØ¸´ÐжøÅÉÉú³öÒ»¸ö½á¹û±í (select a from tableA ) except (select a from tableB) except (select a from tableC)
17¡¢ËµÃ÷£ºËæ»úÈ¡³ö10ÌõÊý¾Ý select top 10 * from tablename order by newid()
18¡¢ËµÃ÷£ºËæ»úÑ¡Ôñ¼Ç¼ select newid()
19¡¢ËµÃ÷£ºÉ¾³ýÖØ¸´¼Ç¼ Delete from tablename where id not in (select max(id) from tablename group by col1,col2,...)
20¡¢ËµÃ÷£ºÁгöÊý¾Ý¿âÀïËùÓеıíÃû select name from sysobjects where type='U'
21¡¢ËµÃ÷£ºÁгö±íÀïµÄËùÓÐµÄ select name from syscolumns where id=object_id('TableName')
22¡¢ËµÃ÷£ºÁÐʾtype¡¢vender¡¢pcs×ֶΣ¬ÒÔtype×Ö¶ÎÅÅÁУ¬case¿ÉÒÔ·½±ãµØÊµÏÖ¶àÖØÑ¡Ôñ£¬ÀàËÆselect ÖеÄcase¡£ select type,sum(case vender when 'A' then pcs else 0 end),sum(case vender when 'C' then pcs else 0 end),sum(case vender when 'B' then pcs else 0 end) FROM tablename group by type ÏÔʾ½á¹û£º type vender pcs µçÄÔ A 1 µçÄÔ A 1 ¹âÅÌ B 2 ¹âÅÌ A 2 ÊÖ»ú B 3 ÊÖ»ú C 3
23¡¢ËµÃ÷£º³õʼ»¯±ítable1 TRUNCATE TABLE table1
24¡¢ËµÃ÷£ºÑ¡Ôñ´Ó10µ½15µÄ¼Ç¼ select top 5 * from (select top 15 * from table order by id asc) table_±ðÃû order by id desc ¡¡¡¡ Ëæ»úÑ¡ÔñÊý¾Ý¿â¼Ç¼µÄ·½·¨£¨Ê¹ÓÃRandomizeº¯Êý£¬Í¨¹ýSQLÓï¾äʵÏÖ£© ¡¡¡¡¶Ô´æ´¢ÔÚÊý¾Ý¿âÖеÄÊý¾ÝÀ´Ëµ£¬Ëæ»úÊýÌØÐÔÄܸø³öÉÏÃæµÄЧ¹û£¬µ«ËüÃÇ¿ÉÄÜÌ«ÂýÁËЩ¡£Äã²»ÄÜÒªÇóASP¡°ÕÒ¸öËæ»úÊý¡±È»ºó´òÓ¡³öÀ´¡£Êµ¼ÊÉϳ£¼ûµÄ½â¾ö·½°¸Êǽ¨Á¢ÈçÏÂËùʾµÄÑ»·£º Randomize RNumber = Int(Rnd*499) +1 ¡¡ While Not objRec.EOF If objRec("ID") = RNumber THEN ... ÕâÀïÊÇÖ´Ðнű¾ ... end if objRec.MoveNext Wend ¡¡ ¡¡¡¡ÕâºÜÈÝÒ×Àí½â¡£Ê×ÏÈ£¬ÄãÈ¡³ö1µ½500·¶Î§Ö®ÄÚµÄÒ»¸öËæ»úÊý£¨¼ÙÉè500¾ÍÊÇÊý¾Ý¿âÄڼǼµÄ×ÜÊý£©¡£È»ºó£¬Äã±éÀúÿһ¼Ç¼À´²âÊÔID µÄÖµ¡¢¼ì²éÆäÊÇ·ñÆ¥ÅäRNumber¡£Âú×ãÌõ¼þµÄ»°¾ÍÖ´ÐÐÓÉTHEN ¹Ø¼ü×Ö¿ªÊ¼µÄÄÇÒ»¿é´úÂë¡£¼ÙÈçÄãµÄRNumber µÈÓÚ495£¬ÄÇôҪѻ·Ò»±éÊý¾Ý¿â»¨µÄʱ¼ä¿É¾Í³¤ÁË¡£ËäÈ»500Õâ¸öÊý×Ö¿´ÆðÀ´´óÁËЩ£¬µ«Ïà±È¸üΪÎÈ¹ÌµÄÆóÒµ½â¾ö·½°¸Õ⻹ÊǸöСÐÍÊý¾Ý¿âÁË£¬ºóÕßͨ³£ÔÚÒ»¸öÊý¾Ý¿âÄھͰüº¬Á˳ÉǧÉÏÍòÌõ¼Ç¼¡£Õâʱºò²»¾ÍËÀ¶¨ÁË£¿ ¡¡¡¡²ÉÓÃSQL£¬Äã¾Í¿ÉÒÔºÜ¿ìµØÕÒ³ö׼ȷµÄ¼Ç¼²¢ÇÒ´ò¿ªÒ»¸öÖ»°üº¬¸Ã¼Ç¼µÄrecordset£¬ÈçÏÂËùʾ£º Randomize RNumber = Int(Rnd*499) + 1 ¡¡ SQL = "SELECT * FROM Customers WHERE ID = " & RNumber ¡¡ set objRec = ObjConn.Execute(SQL) Response.WriteRNumber & " = " & objRec("ID") & " " & objRec("c_email") ¡¡ ¡¡¡¡²»±ØÐ´³öRNumber ºÍID£¬ÄãÖ»ÐèÒª¼ì²éÆ¥ÅäÇé¿ö¼´¿É¡£Ö»ÒªÄã¶ÔÒÔÉÏ´úÂëµÄ¹¤×÷ÂúÒ⣬Äã×Կɰ´Ðè²Ù×÷¡°Ëæ»ú¡±¼Ç¼¡£RecordsetûÓаüº¬ÆäËûÄÚÈÝ£¬Òò´ËÄãºÜ¿ì¾ÍÄÜÕÒµ½ÄãÐèÒªµÄ¼Ç¼ÕâÑù¾Í´ó´ó½µµÍÁË´¦Àíʱ¼ä¡£ ÔÙÌ¸Ëæ»úÊý ¡¡¡¡ÏÖÔÚÄã϶¨¾öÐÄÒªÕ¥¸ÉRandom º¯ÊýµÄ×îºóÒ»µÎÓÍ£¬ÄÇôÄã¿ÉÄÜ»áÒ»´ÎÈ¡³ö¶àÌõËæ»ú¼Ç¼»òÕßÏë²ÉÓÃÒ»¶¨Ëæ»ú·¶Î§ÄڵļǼ¡£°ÑÉÏÃæµÄ±ê×¼Random ʾÀýÀ©Õ¹Ò»Ï¾ͿÉÒÔÓÃSQLÓ¦¶ÔÉÏÃæÁ½ÖÖÇé¿öÁË¡£ ¡¡¡¡ÎªÁËÈ¡³ö¼¸ÌõËæ»úÑ¡ÔñµÄ¼Ç¼²¢´æ·ÅÔÚͬһrecordsetÄÚ£¬Äã¿ÉÒÔ´æ´¢Èý¸öËæ»úÊý£¬È»ºó²éѯÊý¾Ý¿â»ñµÃÆ¥ÅäÕâЩÊý×ֵļǼ£º SQL = "SELECT * FROM Customers WHERE ID = " & RNumber & " OR ID = " & RNumber2 & " OR ID = " & RNumber3 ¡¡ ¡¡¡¡¼ÙÈçÄãÏëÑ¡³ö10Ìõ¼Ç¼£¨Ò²ÐíÊÇÿ´ÎÒ³Ãæ×°ÔØÊ±µÄ10ÌõÁ´½ÓµÄÁÐ±í£©£¬Äã¿ÉÒÔÓÃBETWEEN »òÕßÊýѧµÈʽѡ³öµÚÒ»Ìõ¼Ç¼ºÍÊʵ±ÊýÁ¿µÄµÝÔö¼Ç¼¡£ÕâÒ»²Ù×÷¿ÉÒÔͨ¹ýºÃ¼¸ÖÖ·½Ê½À´Íê³É£¬µ«ÊÇ SELECT Óï¾äÖ»ÏÔʾһÖÖ¿ÉÄÜ£¨ÕâÀïµÄID ÊÇ×Ô¶¯Éú³ÉµÄºÅÂ룩£º SQL = "SELECT * FROM Customers WHERE ID BETWEEN " & RNumber & " AND " & RNumber & "+ 9"
¡¡¡¡×¢Ò⣺ÒÔÉÏ´úÂëµÄÖ´ÐÐÄ¿µÄ²»ÊǼì²éÊý¾Ý¿âÄÚÊÇ·ñÓÐ9Ìõ²¢·¢¼Ç¼¡£
¡¡ Ëæ»ú¶ÁÈ¡Èô¸ÉÌõ¼Ç¼£¬²âÊÔ¹ý AccessÓï·¨£ºSELECT top 10 * From ±íÃû ORDER BY Rnd(id) Sql server:select top n * from ±íÃû order by newid() mysql:select * From ±íÃû Order By rand() Limit n Access×óÁ¬½ÓÓï·¨(×î½ü¿ª·¢ÒªÓÃ×óÁ¬½Ó,Access°ïÖúʲô¶¼Ã»ÓÐ,ÍøÉÏûÓÐAccessµÄSQL˵Ã÷,Ö»ÓÐ×Ô¼º²âÊÔ, ÏÖÔÚ¼ÇÏÂÒÔ±¸ºó²é) Óï·¨:select table1.fd1,table1,fd2,table2.fd2 From table1 left join table2 on table1.fd1,table2.fd1 where ... ʹÓÃSQLÓï¾ä ÓÃ...´úÌæ¹ý³¤µÄ×Ö·û´®ÏÔʾ Óï·¨£º SQLÊý¾Ý¿â£ºselect case when len(field)>10 then left(field,10)+'...' else field end as news_name,news_id from tablename AccessÊý¾Ý¿â£ºSELECT iif(len(field)>2,left(field,2)+'...',field) FROM tablename; ¡¡ Conn.Execute˵Ã÷ Execute·½·¨ ¡¡¡¡¸Ã·½·¨ÓÃÓÚÖ´ÐÐSQLÓï¾ä¡£¸ù¾ÝSQLÓï¾äÖ´ÐкóÊÇ·ñ·µ»Ø¼Ç¼¼¯£¬¸Ã·½·¨µÄʹÓøñʽ·ÖΪÒÔÏÂÁ½ÖÖ£º ¡¡¡¡¡¡¡¡1£®Ö´ÐÐSQL²éѯÓï¾äʱ£¬½«·µ»Ø²éѯµÃµ½µÄ¼Ç¼¼¯¡£Ó÷¨Îª£º ¡¡¡¡¡¡¡¡Set ¶ÔÏó±äÁ¿Ãû=Á¬½Ó¶ÔÏó.Execute("SQL ²éѯÓïÑÔ") ¡¡¡¡¡¡Execute·½·¨µ÷Óú󣬻á×Ô¶¯´´½¨¼Ç¼¼¯¶ÔÏ󣬲¢½«²éѯ½á¹û´æ´¢ÔڸüǼ¶ÔÏóÖУ¬Í¨¹ýSet·½·¨£¬½«¼Ç¼¼¯¸³¸øÖ¸¶¨µÄ¶ÔÏ󱣴棬ÒÔºó¶ÔÏó±äÁ¿¾Í´ú±íÁ˸üǼ¼¯¶ÔÏó¡£
¡¡¡¡¡¡¡¡2£®Ö´ÐÐSQLµÄ²Ù×÷ÐÔÓïÑÔʱ£¬Ã»ÓмǼ¼¯µÄ·µ»Ø¡£´ËʱÓ÷¨Îª£º ¡¡¡¡¡¡¡¡Á¬½Ó¶ÔÏó.Execute "SQL ²Ù×÷ÐÔÓï¾ä" [, RecordAffected][, Option] ¡¡¡¡¡¡¡¡¡¡¡¡¡¤RecordAffected Ϊ¿ÉÑ¡Ï´Ë³ö¿É·ÅÖÃÒ»¸ö±äÁ¿£¬SQLÓï¾äÖ´Ðкó£¬ËùÉúЧµÄ¼Ç¼Êý»á×Ô¶¯±£´æµ½¸Ã±äÁ¿ÖС£Í¨¹ý·ÃÎʸñäÁ¿£¬¾Í¿ÉÖªµÀSQLÓï¾ä¶Ó¶àÉÙÌõ¼Ç¼½øÐÐÁ˲Ù×÷¡£ ¡¡¡¡¡¡¡¡¡¡¡¡¡¤Option ¿ÉÑ¡Ï¸Ã²ÎÊýµÄȡֵͨ³£ÎªadCMDText£¬ËüÓÃÓÚ¸æËßADO£¬Ó¦¸Ã½«Execute·½·¨Ö®ºóµÄµÚÒ»¸ö×Ö·û½âÊÍΪÃüÁîÎı¾¡£Í¨¹ýÖ¸¶¨¸Ã²ÎÊý£¬¿ÉʹִÐиü¸ßЧ¡£
¡¤BeginTrans¡¢RollbackTrans¡¢CommitTrans·½·¨ ¡¡¡¡ÕâÈý¸ö·½·¨ÊÇÁ¬½Ó¶ÔÏóÌṩµÄÓÃÓÚÊÂÎñ´¦ÀíµÄ·½·¨¡£BeginTransÓÃÓÚ¿ªÊ¼Ò»¸öÊÂÎRollbackTransÓÃÓڻعöÊÂÎñ£»CommitTransÓÃÓÚÌá½»ËùÓеÄÊÂÎñ´¦Àí½á¹û£¬¼´È·ÈÏÊÂÎñµÄ´¦Àí¡£ ¡¡¡¡ÊÂÎñ´¦Àí¿ÉÒÔ½«Ò»×é²Ù×÷ÊÓΪһ¸öÕûÌ壬ֻÓÐÈ«²¿Óï¾ä¶¼³É¹¦Ö´Ðкó£¬ÊÂÎñ´¦Àí²ÅËã³É¹¦£»ÈôÆäÖÐÓÐÒ»¸öÓï¾äÖ´ÐÐʧ°Ü£¬ÔòÕû¸ö´¦Àí¾ÍËãʧ°Ü£¬²¢»Ö¸´µ½´¦ÀïǰµÄ״̬¡£ ¡¡¡¡BeginTransºÍCommitTransÓÃÓÚ±ê¼ÇÊÂÎñµÄ¿ªÊ¼ºÍ½áÊø£¬ÔÚÕâÁ½¸öÖ®¼äµÄÓï¾ä£¬¾ÍÊÇ×÷ΪÊÂÎñ´¦ÀíµÄÓï¾ä¡£ÅжÏÊÂÎñ´¦ÀíÊÇ·ñ³É¹¦£¬¿Éͨ¹ýÁ¬½Ó¶ÔÏóµÄError¼¯ºÏÀ´ÊµÏÖ£¬ÈôError¼¯ºÏµÄ³ÉÔ±¸öÊý²»Îª0£¬Ôò˵Ã÷ÓдíÎó·¢Éú£¬ÊÂÎñ´¦Àíʧ°Ü¡£Error¼¯ºÏÖеÄÿһ¸öError¶ÔÏ󣬴ú±íÒ»¸ö´íÎóÐÅÏ¢¡£ |