Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
SQL ServerÖеÄÊÂÎñÓëËø
 
×÷Õß ÕÅÁúºÀ£¬»ðÁú¹ûÈí¼þ    ·¢²¼ÓÚ 2014-07-11
  2526  次浏览      27
 

Á˽âÊÂÎñºÍËø

ÊÂÎñ£º±£³ÖÂß¼­Êý¾ÝÒ»ÖÂÐÔÓë¿É»Ö¸´ÐÔ£¬±Ø²»¿ÉÉÙµÄÀûÆ÷¡£

Ëø£º¶àÓû§·ÃÎÊͬһÊý¾Ý¿â×ÊԴʱ£¬¶Ô·ÃÎʵÄÏȺó´ÎÐòȨÏÞ¹ÜÀíµÄÒ»ÖÖ»úÖÆ£¬Ã»ÓÐËûÊÂÎñ»òÐí½«»áÒ»ËúºýÍ¿£¬²»Äܱ£Ö¤Êý¾ÝµÄ°²È«ÕýÈ·¶Áд¡£

ËÀËø£ºÊÇÊý¾Ý¿âÐÔÄܵÄÖØÁ¿¼¶É±ÊÖÖ®Ò»£¬¶øËÀËøÈ´ÊDz»Í¬ÊÂÎñÖ®¼äÇÀÕ¼Êý¾Ý×ÊÔ´Ôì³ÉµÄ¡£

²»¶®µÄÌýÉÏÈ¥£¬Í¦ÉñÆæµÄ£¬¶®µÄ¸Ð¾õÎÒÔÚ³¶µ­£¬ÏÂÃæ´øÄãºÃºÃÁìÂÔÏÂËûÃǵķç²É£¬Ðá–ËÏÂËûÃǵĿñɧ¡£¡£

ÏÈ˵ÊÂÎñ--¸ÅÄ·ÖÀà

Óûª×ÐÎÞ¼äµÀÖеÄÒ»¾äÀ´¸øÄãÚ¹ÊÍÏ£ºÈ¥²»ÁËÖյ㣬»Øµ½Ô­µã¡£

¾ÙÀý˵Ã÷£º

ÔÚÒ»¸öÊÂÎñÖУ¬ÄãдÀ²2ÌõsqlÓï¾ä£¬Ò»ÌõÊÇÐ޸Ķ©µ¥±í״̬,Ò»ÌõÊÇÐÞ¸Ä¿â´æ±í¿â´æ-1 ¡£ Èç¹ûÔÚÐ޸Ķ©µ¥±í״̬µÄʱºò³ö´í£¬ÊÂÎñÄܹ»»Ø¹ö£¬Êý¾Ý½«»Ö¸´µ½Ã»ÐÞ¸Ä֮ǰµÄÊý¾Ý״̬£¬ÏÂÃæµÄÐÞ¸Ä¿â´æÒ²¾Í²»Ö´ÐУ¬ÕâÑùÈ·±£Äã¹ØÏµÂß¼­µÄÒ»Ö£¬°²È«¡£¡£

ÊÂÎñ¾ÍÊÇÕâ¸öÑù×Ó£¬¾óÆ¢Æø£¬ÒªÃ´È«²¿Ö´ÐУ¬ÒªÃ´È«²¿²»Ö´ÐУ¬»Øµ½Ô­Êý¾Ý״̬¡£

ÊéÃæ½âÊÍ£ºÊÂÎñ¾ßÓÐÔ­×ÓÐÔ£¬Ò»ÖÂÐÔ£¬¸ôÀëÐÔ£¬³Ö¾ÃÐÔ¡£

Ô­×ÓÐÔ£ºÊÂÎñ±ØÐëÊÇÒ»¸ö×Ô¶¯¹¤×÷µÄµ¥Ôª£¬ÒªÃ´È«²¿Ö´ÐУ¬ÒªÃ´È«²¿²»Ö´ÐС£

Ò»ÖÂÐÔ£ºÊÂÎñ½áÊøµÄʱºò£¬ËùÓеÄÄÚ²¿Êý¾Ý¶¼ÊÇÕýÈ·µÄ¡£

¸ôÀëÐÔ£º²¢·¢¶à¸öÊÂÎñʱ£¬¸÷¸öÊÂÎñ²»¸ÉÉæÄÚ²¿Êý¾Ý£¬´¦ÀíµÄ¶¼ÊÇÁíÍâÒ»¸öÊÂÎñ´¦Àí֮ǰ»òÖ®ºóµÄÊý¾Ý¡£

³Ö¾ÃÐÔ£ºÊÂÎñÌá½»Ö®ºó£¬Êý¾ÝÊÇÓÀ¾ÃÐԵ쬲»¿ÉÔٻعö¡£

È»¶øÔÚSQL ServerÖÐÊÂÎñ±»·ÖΪ3Àà³£¼ûµÄÊÂÎñ£º

×Ô¶¯Ìá½»ÊÂÎñ£ºÊÇSQL ServerĬÈϵÄÒ»ÖÖÊÂÎñģʽ£¬Ã¿ÌõSqlÓï¾ä¶¼±»¿´³ÉÒ»¸öÊÂÎñ½øÐд¦Àí£¬ÄãÓ¦¸ÃûÓмû¹ý£¬Ò»ÌõUpdate ÐÞ¸Ä2¸ö×ֶεÄÓï¾ä£¬Ö»ÐÞ¸ÃÁË1¸ö×ֶζøÁíÍâÒ»¸ö×Ö¶ÎûÓÐÐ޸ġ£¡£

ÏÔʽÊÂÎñ£ºT-sql±êÃ÷£¬ÓÉBegin Transaction¿ªÆôÊÂÎñ¿ªÊ¼£¬ÓÉCommit Transaction Ìá½»ÊÂÎñ¡¢Rollback Transaction »Ø¹öÊÂÎñ½áÊø¡£

ÒþʽÊÂÎñ£ºÊ¹ÓÃSet IMPLICIT_TRANSACTIONS ON ½«½«ÒþʽÊÂÎñģʽ´ò¿ª£¬²»ÓÃBegin Transaction¿ªÆôÊÂÎñ£¬µ±Ò»¸öÊÂÎñ½áÊø£¬Õâ¸öģʽ»á×Ô¶¯ÆôÓÃÏÂÒ»¸öÊÂÎñ£¬Ö»ÓÃCommit Transaction Ìá½»ÊÂÎñ¡¢Rollback Transaction »Ø¹öÊÂÎñ¼´¿É¡£

ÏÔʽÊÂÎñµÄÓ¦ÓÃ

³£ÓÃÓï¾ä¾ÍËĸö¡£

Begin Transaction£º±ê¼ÇÊÂÎñ¿ªÊ¼¡£

Commit Transaction£ºÊÂÎñÒѾ­³É¹¦Ö´ÐУ¬Êý¾ÝÒѾ­´¦ÀíÍ×µ±¡£

Rollback Transaction£ºÊý¾Ý´¦Àí¹ý³ÌÖгö´í£¬»Ø¹öµ½Ã»Óд¦Àí֮ǰµÄÊý¾Ý״̬£¬»ò»Ø¹öµ½ÊÂÎñÄÚ²¿µÄ±£´æµã¡£

Save Transaction£ºÊÂÎñÄÚ²¿ÉèÖõı£´æµã£¬¾ÍÊÇÊÂÎñ¿ÉÒÔ²»È«²¿»Ø¹ö£¬Ö»»Ø¹öµ½ÕâÀ±£Ö¤ÊÂÎñÄÚ²¿²»³ö´íµÄǰÌáÏ¡£

ÉÏÃæµÄ¶¼ÊÇÐÄ·¨£¬ÏÂÃæµÄ¸øÄãÀ´¸öÕÐʽ£¬Òª¿´×ÐϸÀ²¡£

1 ---¿ªÆôÊÂÎñ
2 begin tran
3 --´íÎóÆË×½»úÖÆ£¬¿´ºÃÀ²£¬ÕâÀïÒ²Óеġ£²¢ÇÒ¿ÉÒÔǶÌס£
4 begin try
5 --Óï¾äÕýÈ·
6 insert into lives (Eat,Play,Numb) values ('ÖíÈâ','×ãÇò',1)
7 --NumbΪintÀàÐÍ£¬³ö´í
8 insert into lives (Eat,Play,Numb) values ('ÖíÈâ','×ãÇò','abc')
9 --Óï¾äÕýÈ·
10 insert into lives (Eat,Play,Numb) values ('¹·Èâ','ÀºÇò',2)
11 end try
12 begin catch
13 select Error_number() as ErrorNumber, --´íÎó´úÂë
14 Error_severity() as ErrorSeverity, --´íÎóÑÏÖØ¼¶±ð£¬¼¶±ðСÓÚ10 try catch ²¶»ñ²»µ½
15 Error_state() as ErrorState , --´íÎó״̬Âë
16 Error_Procedure() as ErrorProcedure , --³öÏÖ´íÎóµÄ´æ´¢¹ý³Ì»ò´¥·¢Æ÷µÄÃû³Æ¡£
17 Error_line() as ErrorLine, --·¢Éú´íÎóµÄÐкÅ
18 Error_message() as ErrorMessage --´íÎóµÄ¾ßÌåÐÅÏ¢
19 if(@@trancount>0) --È«¾Ö±äÁ¿@@trancount£¬ÊÂÎñ¿ªÆô´ËÖµ+1£¬ËûÓÃÀ´ÅжÏÊÇÓпªÆôÊÂÎñ
20 rollback tran ---ÓÉÓÚ³ö´í£¬ÕâÀï»Ø¹öµ½¿ªÊ¼£¬µÚÒ»ÌõÓï¾äҲûÓвåÈë³É¹¦¡£
21 end catch
22 if(@@trancount>0)
23 commit tran --Èç¹û³É¹¦Lives±íÖУ¬½«»áÓÐ3ÌõÊý¾Ý¡£
24
25 --±í±¾ÉíΪ¿Õ±í£¬ID ,NumbΪint ÀàÐÍ£¬ÆäËüΪnvarcharÀàÐÍ
26 select * from lives

---¿ªÆôÊÂÎñ
begin tran
--´íÎóÆË×½»úÖÆ£¬¿´ºÃÀ²£¬ÕâÀïÒ²Óеġ£²¢ÇÒ¿ÉÒÔǶÌס£
begin try
--Óï¾äÕýÈ·
insert into lives (Eat,Play,Numb) values ('ÖíÈâ','×ãÇò',1)
--¼ÓÈë±£´æµã
save tran pigOneIn
--NumbΪintÀàÐÍ£¬³ö´í
insert into lives (Eat,Play,Numb) values ('ÖíÈâ','×ãÇò',2)
--Óï¾äÕýÈ·
insert into lives (Eat,Play,Numb) values ('¹·Èâ','ÀºÇò',3)
end try
begin catch
select Error_number() as ErrorNumber, --´íÎó´úÂë
Error_severity() as ErrorSeverity, --´íÎóÑÏÖØ¼¶±ð£¬¼¶±ðСÓÚ10 try catch ²¶»ñ²»µ½
Error_state() as ErrorState , --´íÎó״̬Âë
Error_Procedure() as ErrorProcedure , --³öÏÖ´íÎóµÄ´æ´¢¹ý³Ì»ò´¥·¢Æ÷µÄÃû³Æ¡£
Error_line() as ErrorLine, --·¢Éú´íÎóµÄÐкÅ
Error_message() as ErrorMessage --´íÎóµÄ¾ßÌåÐÅÏ¢
if(@@trancount>0) --È«¾Ö±äÁ¿@@trancount£¬ÊÂÎñ¿ªÆô´ËÖµ+1£¬ËûÓÃÀ´ÅжÏÊÇÓпªÆôÊÂÎñ
rollback tran ---ÓÉÓÚ³ö´í£¬ÕâÀï»Ø¹öÊÂÎñµ½Ô­µã£¬µÚÒ»ÌõÓï¾äҲûÓвåÈë³É¹¦¡£
end catch
if(@@trancount>0)
rollback tran pigOneIn --Èç¹û³É¹¦Lives±íÖУ¬½«»áÓÐ3ÌõÊý¾Ý¡£
--±í±¾ÉíΪ¿Õ±í£¬ID ,NumbΪint ÀàÐÍ£¬ÆäËüΪnvarcharÀàÐÍ
select * from lives

ʹÓÃset xact_abort

ÉèÖà xact_abort on/off , Ö¸¶¨ÊÇ·ñ»Ø¹öµ±Ç°ÊÂÎñ£¬ÎªonʱÈç¹ûµ±Ç°sql³ö´í£¬»Ø¹öÕû¸öÊÂÎñ£¬ÎªoffʱÈç¹ûsql³ö´í»Ø¹öµ±Ç°sqlÓï¾ä£¬ÆäËüÓï¾äÕÕ³£ÔËÐжÁдÊý¾Ý¿â¡£

ÐèҪעÒâµÄʱ£ºxact_abortÖ»¶ÔÔËÐÐʱ³öÏֵĴíÎóÓÐÓã¬Èç¹ûsqlÓï¾ä´æÔÚ±àÒëʱ´íÎó£¬ÄÇôËû¾ÍʧÁéÀ²¡£

delete lives  --Çå¿ÕÊý¾Ý
set xact_abort off
begin tran
--Óï¾äÕýÈ·
insert into lives (Eat,Play,Numb) values ('ÖíÈâ','×ãÇò',1)
--NumbΪintÀàÐÍ£¬³ö´í,Èç¹û1234..ÄǸö´óÊý¾Ý»»³É'132dsaf' xact_abort½«Ê§Ð§
insert into lives (Eat,Play,Numb) values ('ÖíÈâ','×ãÇò',12345646879783213)
--Óï¾äÕýÈ·
insert into lives (Eat,Play,Numb) values ('¹·Èâ','ÀºÇò',3)
commit tran
select * from lives
Ϊonʱ£¬½á¹û¼¯Îª¿Õ£¬ÒòΪÔËÐÐÊÇÊý¾Ý¹ý´óÒç³ö³ö´í£¬»Ø¹öÕû¸öÊÂÎñ¡£
ÊÂÎñ°ÑËÀËø¸øÕû³öÀ´À²
¸ú×Å×ö£º´ò¿ªÁ½¸ö²éѯ´°¿Ú£¬°ÑÏÂÃæµÄÓï¾ä£¬·Ö±ð·ÅÈë2¸ö²éѯ´°¿Ú£¬ÔÚ5ÃëÄÚÔËÐÐ2¸öÊÂÎñÄ£¿é¡£
begin tran
update lives set play='ÓðëÇò'
waitfor delay '0:0:5'
update dbo.Earth set Animal='ÀÏ»¢'
commit tran
begin tran
update Earth set Animal='ÀÏ»¢'
waitfor delay '0:0:5' --µÈ´ý5ÃëÖ´ÐÐÏÂÃæµÄÓï¾ä
update lives set play='ÓðëÇò'
commit tran
select * from lives
select * from Earth

ÎªÊ²Ã´ÄØ£¬ÏÂÃæÎÒÃÇ¿´¿´Ëø£¬Ê²Ã´ÊÇËø¡£

²¢·¢ÊÂÎñ³É°Ü½Ô¹éÓÚËø¡ª¡ªËø¶¨

ÔÚ¶àÓû§¶¼ÓÃÊÂÎñͬʱ·ÃÎÊͬһ¸öÊý¾Ý×ÊÔ´µÄÇé¿öÏ£¬¾Í»áÔì³ÉÒÔϼ¸ÖÖÊý¾Ý´íÎó¡£

¸üжªÊ§£º¶à¸öÓû§Í¬Ê±¶ÔÒ»¸öÊý¾Ý×ÊÔ´½øÐиüУ¬±Ø¶¨»á²úÉú±»¸²¸ÇµÄÊý¾Ý£¬Ôì³ÉÊý¾Ý¶ÁдÒì³£¡£

²»¿ÉÖØ¸´¶Á£ºÈç¹ûÒ»¸öÓû§ÔÚÒ»¸öÊÂÎñÖжà´Î¶ÁȡһÌõÊý¾Ý£¬¶øÁíÍâÒ»¸öÓû§Ôòͬʱ¸üÐÂÀ²ÕâÌõÊý¾Ý£¬Ôì³ÉµÚÒ»¸öÓû§¶à´Î¶ÁÈ¡Êý¾Ý²»Ò»Ö¡£

Ôà¶Á£ºµÚÒ»¸öÊÂÎñ¶ÁÈ¡µÚ¶þ¸öÊÂÎñÕýÔÚ¸üеÄÊý¾Ý±í£¬Èç¹ûµÚ¶þ¸öÊÂÎñ»¹Ã»ÓиüÐÂÍê³É£¬ÄÇôµÚÒ»¸öÊÂÎñ¶ÁÈ¡µÄÊý¾Ý½«ÊÇÒ»°ëΪ¸üйýµÄ£¬Ò»°ë»¹Ã»¸üйýµÄÊý¾Ý£¬ÕâÑùµÄÊý¾ÝºÁÎÞÒâÒå¡£

»Ã¶Á£ºµÚÒ»¸öÊÂÎñ¶Áȡһ¸ö½á¹û¼¯ºó£¬µÚ¶þ¸öÊÂÎñ£¬¶ÔÕâ¸ö½á¹û¼¯¾­ÐÐÔöɾ²Ù×÷£¬È»¶øµÚÒ»¸öÊÂÎñÖÐÔٴζÔÕâ¸ö½á¹û¼¯½øÐвéѯʱ£¬Êý¾Ý·¢ÏÖ¶ªÊ§»òÐÂÔö¡£

È»¶øËø¶¨£¬¾ÍÊÇΪ½â¾öÕâЩÎÊÌâËùÉúµÄ£¬ËûµÄ´æÔÚʹµÃÒ»¸öÊÂÎñ¶ÔËû×Ô¼ºµÄÊý¾Ý¿é½øÐвÙ×÷µÄʱºò£¬¶øÁíÍâÒ»¸öÊÂÎñÔò²»Äܲå×ãÕâЩÊý¾Ý¿é¡£Õâ¾ÍÊÇËùνµÄËø¶¨¡£

Ëø¶¨´ÓÊý¾Ý¿âϵͳµÄ½Ç¶È´óÖ¿ÉÒÔ·ÖΪ6ÖÖ£º

¹²ÏíËø£¨S£©£º»¹¿ÉÒÔ½ÐËû¶ÁËø¡£¿ÉÒÔ²¢·¢¶ÁÈ¡Êý¾Ý£¬µ«²»ÄÜÐÞ¸ÄÊý¾Ý¡£Ò²¾ÍÊÇ˵µ±Êý¾Ý×ÊÔ´ÉÏ´æÔÚ¹²ÏíËøµÄʱºò£¬ËùÓеÄÊÂÎñ¶¼²»ÄܶÔÕâ¸ö×ÊÔ´½øÐÐÐ޸ģ¬Ö±µ½Êý¾Ý¶ÁÈ¡Íê³É£¬¹²ÏíËøÊÍ·Å¡£

ÅÅËüËø£¨X£©£º»¹¿ÉÒÔ½ÐËû¶ÀÕ¼Ëø¡¢Ð´Ëø¡£¾ÍÊÇÈç¹ûÄã¶ÔÊý¾Ý×ÊÔ´½øÐÐÔöɾ¸Ä²Ù×÷ʱ£¬²»ÔÊÐíÆäËüÈκÎÊÂÎñ²Ù×÷Õâ¿é×ÊÔ´£¬Ö±µ½ÅÅËüËø±»ÊÍ·Å£¬·Àֹͬʱ¶Ôͬһ×ÊÔ´½øÐжàÖØ²Ù×÷¡£

¸üÐÂËø£¨U£©£º·ÀÖ¹³öÏÖËÀËøµÄËøÄ£Ê½£¬Á½¸öÊÂÎñ¶ÔÒ»¸öÊý¾Ý×ÊÔ´½øÐÐÏȶÁÈ¡ÔÚÐ޸ĵÄÇé¿öÏ£¬Ê¹Óù²ÏíËøºÍÅÅËüËøÓÐʱ»á³öÏÖËÀËøÏÖÏ󣬶øÊ¹ÓøüÐÂËøÔò¿ÉÒÔ±ÜÃâËÀËøµÄ³öÏÖ¡£×ÊÔ´µÄ¸üÐÂËøÒ»´ÎÖ»ÄÜ·ÖÅä¸øÒ»¸öÊÂÎñ£¬Èç¹ûÐèÒª¶Ô×ÊÔ´½øÐÐÐ޸쬏üÐÂËø»á±ä³ÉÅÅËûËø£¬·ñÔò±äΪ¹²ÏíËø¡£

ÒâÏòËø£ºSQL ServerÐèÒªÔÚ²ã´Î½á¹¹Öеĵײã×ÊÔ´ÉÏ£¨ÈçÐУ¬ÁУ©»ñÈ¡¹²ÏíËø£¬ÅÅËüËø£¬¸üÐÂËø¡£ÀýÈç±í¼¶·ÅÖÃÁËÒâÏò¹²ÏíËø£¬¾Í±íʾÊÂÎñÒª¶Ô±íµÄÒ³»òÐÐÉÏʹÓù²ÏíËø¡£ÔÚ±íµÄijһÐÐÉÏÉÏ·ÅÖÃÒâÏòËø£¬¿ÉÒÔ·ÀÖ¹ÆäËüÊÂÎñ»ñÈ¡ÆäËü²»¼æÈݵĵÄËø¡£ÒâÏòËø¿ÉÒÔÌá¸ßÐÔÄÜ£¬ÒòΪÊý¾ÝÒýÇæ²»ÐèÒª¼ì²â×ÊÔ´µÄÿһÁÐÿһÐУ¬¾ÍÄÜÅжÏÊÇ·ñ¿ÉÒÔ»ñÈ¡µ½¸Ã×ÊÔ´µÄ¼æÈÝËø¡£ÒâÏòËø°üÀ¨ÈýÖÖÀàÐÍ£ºÒâÏò¹²ÏíËø£¨IS£©£¬ÒâÏòÅÅËûËø£¨IX£©£¬ÒâÏòÅÅËû¹²ÏíËø£¨SIX£©¡£

¼Ü¹¹Ëø£º·ÀÖ¹Ð޸ıí½á¹¹Ê±£¬²¢·¢·ÃÎʵÄËø¡£

´óÈÝÁ¿¸üÐÂËø£ºÔÊÐí¶à¸öÏ߳̽«´óÈÝÁ¿Êý¾Ý²¢·¢µÄ²åÈ뵽ͬһ¸ö±íÖУ¬ÔÚ¼ÓÔØµÄͬʱ£¬²»ÔÊÐíÆäËü½ø³Ì·ÃÎÊ¸Ã±í¡£

ÕâÐ©ËøÖ®¼äµÄÏ໥¼æÈÝÐÔ£¬Ò²¾ÍÊÇ£¬ÊÇ·ñ¿ÉÒÔͬʱ´æÔÚ¡£

Ëø¼æÈÝÐÔ¾ßÌå²Î¼û£ºhttp://msdn.microsoft.com/zh-cn/library/ms186396.aspx

ËøÁ£¶ÈºÍ²ã´Î½á¹¹²Î¼û£ºhttp://msdn.microsoft.com/zh-cn/library/ms189849(v=sql.105).aspx

ËÀËø

ʲôÊÇËÀËø£¬ÎªÊ²Ã´»á²úÉúËÀËø¡£ÎÒÓà ¡°ÊÂÎñ°ÑËÀËø¸øÕû³öÀ´À²¡± ±êÌâϵÄÁ½¸öÊÂÎñ²úÉúµÄËÀËøÀ´½âÊÍÓ¦¸Ã»á¸ü¼ÓÉú¶¯ÐÎÏóµã¡£

Àý×ÓÊÇÕâÑùµÄ£º

µÚÒ»¸öÊÂÎñ£¨³ÆÎªA£©£ºÏȸüÐÂlives±í --->>Í£¶Ù5Ãë---->>¸üÐÂearth±í

µÚ¶þ¸öÊÂÎñ£¨³ÆÎªB£©£ºÏȸüÐÂearth±í--->>Í£¶Ù5Ãë---->>¸üÐÂlives±í

ÏÈÖ´ÐÐÊÂÎñA----5ÃëÖ®ÄÚ---Ö´ÐÐÊÂÎñB£¬³öÏÖËÀËøÏÖÏó¡£

¹ý³ÌÊÇÕâÑù×ӵģº

A¸üÐÂlives±í£¬ÇëÇólivesµÄÅÅËûËø£¬³É¹¦¡£

B¸üÐÂearth±í£¬ÇëÇóearthµÄÅÅËûËø£¬³É¹¦¡£

5Ãë¹ýºó

A¸üÐÂearth£¬ÇëÇóearthµÄÅÅËüËø£¬ÓÉÓÚBÕ¼ÓÃ×ÅearthµÄÅÅËüËø£¬µÈ´ý¡£

B¸üÐÂlives£¬ÇëÇólivesµÄÅÅËüËø£¬ÓÉÓÚAÕ¼ÓÃ×ÅlivesµÄÅÅËüËø£¬µÈ´ý¡£

ÕâÑùÏ໥µÈ´ý¶Ô·½ÊÍ·Å×ÊÔ´£¬Ôì³É×ÊÔ´¶Áдӵ¼·¶ÂÈûµÄÇé¿ö£¬¾Í±»³ÆÎªËÀËøÏÖÏó£¬Ò²½Ð×ö×èÈû¡£¶øÎªÊ²Ã´»á²úÉú£¬ÉÏÀý¾ÍÁоٳöÀ´À²¡£

È»¶øÊý¾Ý¿â²¢Ã»ÓгöÏÖÎÞÏ޵ȴýµÄÇé¿ö£¬ÊÇÒòΪÊý¾Ý¿âËÑË÷ÒýÇæ»á¶¨ÆÚ¼ì²âÕâÖÖ×´¿ö£¬Ò»µ©·¢ÏÖÓÐÇé¿ö£¬Á¢ÂíÑ¡ÔñÒ»¸öÊÂÎñ×÷ΪÎþÉüÆ·¡£ÎþÉüµÄÊÂÎñ£¬½«»á»Ø¹öÊý¾Ý¡£ÓеãÏñÁ½¸öÈËÔÚ¹ý¶ÀľÇÅ£¬Á½¸öÎÞÄÔµÄÈ˶¼×ßÔÚÀ²¶ÀľÇÅÖм䣬Èç¹û²»ÂäË®£¬±Ø¶¨ÒªÓÐÒ»¸öÈ˸øÍË»ØÀ´¡£ÕâÖÖÏ໥µÈ´ýµÄ¹ý³Ì£¬ÊÇÒ»ÖÖºÄʱºÄ×ÊÔ´µÄÏÖÏó£¬ËùÒÔÄܱÜÔò±Ü¡£

ÄĸöÈ˻ᱻÍË»ØÀ´£¬×÷ΪÎþÉüÆ·£¬Õâ¸öÎÒÃÇÊÇ¿ÉÒÔ¿ØÖƵġ£¿ØÖÆÓï·¨£º

set deadlock_priority <¼¶±ð>

ËÀËø´¦ÀíµÄÓÅÏȼ¶±ðΪ low<normal<high£¬²»Ö¸¶¨µÄÇé¿öÏÂĬÈÏΪnormal£¬ÎþÉüÆ·ÎªËæ»ú¡£Èç¹ûÖ¸¶¨£¬ÎþÉüƷΪ¼¶±ðµÍµÄ¡£

»¹¿ÉÒÔʹÓÃÊý×ÖÀ´´¦Àí±êʶ¼¶±ð£º-10µ½-5Ϊlow£¬-5Ϊnormal£¬-5µ½10Ϊhigh¡£

¼õÉÙËÀËøµÄ·¢Éú£¬Ìá¸ßÊý¾Ý¿âÐÔÄÜ

ËÀËøºÄʱºÄ×ÊÔ´£¬È»¶øÔÚ´óÐÍÊý¾Ý¿âÖУ¬¸ß²¢·¢´øÀ´µÄËÀËøÊDz»¿É±ÜÃâµÄ£¬ËùÒÔÎÒÃÇÖ»ÄÜÈÃÆä±äµÄ¸üÉÙ¡£

°´ÕÕͬһ˳Ðò·ÃÎÊÊý¾Ý¿â×ÊÔ´£¬ÉÏÊöÀý×ӾͲ»»á·¢ÉúËÀËøÀ²

±£³ÖÊÇÊÂÎñµÄ¼ò¶Ì£¬¾¡Á¿²»ÒªÈÃÒ»¸öÊÂÎñ´¦Àí¹ýÓÚ¸´ÔӵĶÁд²Ù×÷¡£ÊÂÎñ¹ýÓÚ¸´ÔÓ£¬Õ¼ÓÃ×ÊÔ´»áÔö¶à£¬´¦Àíʱ¼äÔö³¤£¬ÈÝÒ×ÓëÆäËüÊÂÎñ³åÍ»£¬ÌáÉýËÀËø¸ÅÂÊ¡£

¾¡Á¿²»ÒªÔÚÊÂÎñÖÐÒªÇóÓû§ÏìÓ¦£¬±ÈÈçÐÞ¸ÄÐÂÔöÊý¾ÝÖ®ºóÔÚÍê³ÉÕû¸öÊÂÎñµÄÌá½»£¬ÕâÑùÑÓ³¤ÊÂÎñÕ¼ÓÃ×ÊÔ´µÄʱ¼ä£¬Ò²»áÌáÉýËÀËø¸ÅÂÊ¡£

¾¡Á¿¼õÉÙÊý¾Ý¿âµÄ²¢·¢Á¿¡£

¾¡¿ÉÄÜʹÓ÷ÖÇø±í£¬·ÖÇøÊÓͼ£¬°ÑÊý¾Ý·ÅÖÃÔÚ²»Í¬µÄ´ÅÅ̺ÍÎļþ×éÖУ¬·ÖÉ¢·ÃÎʱ£´æÔÚ²»Í¬·ÖÇøµÄÊý¾Ý£¬¼õÉÙÒòΪ±íÖзÅÖÃËø¶øÔì³ÉµÄÆäËüÊÂÎñ³¤Ê±¼äµÈ´ý¡£

±ÜÃâÕ¼ÓÃʱ¼äºÜ³¤²¢ÇÒ¹ØÏµ±í¸´ÔÓµÄÊý¾Ý²Ù×÷¡£

ʹÓýϵ͵ĸôÀë¼¶±ð£¬Ê¹Óýϵ͵ĸôÀë¼¶±ð±ÈʹÓýϸߵĸôÀë¼¶±ð³ÖÓй²ÏíËøµÄʱ¼ä¸ü¶Ì¡£ÕâÑù¾Í¼õÉÙÁËËøÕùÓá£

¿É²Î¿¼£ºhttp://msdn.microsoft.com/zh-cn/library/ms191242(v=sql.105).aspx

²é¿´Ëø»î¶¯Çé¿ö£º

--²é¿´Ëø»î¶¯Çé¿ö

select * from sys.dm_tran_locks

--²é¿´ÊÂÎñ»î¶¯Çé¿ö

dbcc opentran

¿É²Î¿¼£ºhttp://msdn.microsoft.com/zh-cn/library/ms190345.aspx

ΪÊÂÎñÉèÖøôÀë¼¶±ð

ËùνÊÂÎï¸ôÀë¼¶±ð£¬¾ÍÊDz¢·¢ÊÂÎñ¶Ôͬһ×ÊÔ´µÄ¶ÁÈ¡Éî¶È²ã´Î¡£·ÖΪ5ÖÖ¡£

read uncommitted£ºÕâ¸ö¸ôÀë¼¶±ð×îµÍÀ²£¬¿ÉÒÔ¶ÁÈ¡µ½Ò»¸öÊÂÎñÕýÔÚ´¦ÀíµÄÊý¾Ý£¬µ«ÊÂÎñ»¹Î´Ìá½»£¬ÕâÖÖ¼¶±ðµÄ¶ÁÈ¡½Ð×öÔà¶Á¡£

read committed£ºÕâ¸ö¼¶±ðÊÇĬÈÏÑ¡Ï²»ÄÜÔà¶Á£¬²»ÄܶÁÈ¡ÊÂÎñÕýÔÚ´¦ÀíûÓÐÌá½»µÄÊý¾Ý£¬µ«ÄÜÐ޸ġ£

repeatable read£º²»ÄܶÁÈ¡ÊÂÎñÕýÔÚ´¦ÀíµÄÊý¾Ý£¬Ò²²»ÄÜÐÞ¸ÄÊÂÎñ´¦ÀíÊý¾ÝǰµÄÊý¾Ý¡£

snapshot£ºÖ¸¶¨ÊÂÎñÔÚ¿ªÊ¼µÄʱºò£¬¾Í»ñµÃÁËÒѾ­Ìá½»Êý¾ÝµÄ¿ìÕÕ£¬Òò´Ëµ±Ç°ÊÂÎñÖ»ÄÜ¿´µ½ÊÂÎñ¿ªÊ¼Ö®Ç°¶ÔÊý¾ÝËù×öµÄÐ޸ġ£

serializable£º×î¸ßÊÂÎñ¸ôÀë¼¶±ð£¬Ö»ÄÜ¿´µ½ÊÂÎñ´¦Àí֮ǰµÄÊý¾Ý¡£

--Óï·¨

set tran isolation level <¼¶±ð>

read uncommitted¸ôÀë¼¶±ðµÄÀý×Ó£º

begin tran
set deadlock_priority low
update Earth set Animal='ÀÏ»¢'
waitfor delay '0:0:5' --µÈ´ý5ÃëÖ´ÐÐÏÂÃæµÄÓï¾ä
rollback tran

¿ªÁíÍâÒ»¸ö²éѯ´°¿ÚÖ´ÐÐÏÂÃæÓï¾ä

set tran isolation level read uncommitted
select * from Earth --¶ÁÈ¡µÄÊý¾ÝΪÕýÔÚÐ޸ĵÄÊý¾Ý £¬Ôà¶Á
waitfor delay '0:0:5' --5ÃëÖ®ºóÊý¾ÝÒѾ­»Ø¹ö
select * from Earth --»Ø¹öÖ®ºóµÄÊý¾Ý

read committed¸ôÀë¼¶±ðµÄÀý×Ó£º

begin tran
¡¡¡¡update Earth set Animal='ÀÏ»¢'
¡¡¡¡waitfor delay '0:0:10' --µÈ´ý5ÃëÖ´ÐÐÏÂÃæµÄÓï¾ä
¡¡¡¡rollback tran
¡¡¡¡set tran isolation level read committed
¡¡¡¡select * from Earth ---»ñÈ¡²»µ½ÀÏ»¢£¬²»ÄÜÔà¶Á
¡¡¡¡update Earth set Animal='ºï×Ó1' --¿ÉÒÔÐÞ¸Ä
¡¡¡¡waitfor delay '0:0:10' --10ÃëÖ®ºóÉÏÒ»¸öÊÂÎñÒѾ­»Ø¹ö
¡¡¡¡select * from Earth --ÐÞ¸ÄÖ®ºóµÄÊý¾Ý£¬¶ø²»ÊǺï×Ó

Ê£Ïµļ¸¸ö¼¶±ð£¬²»Ò»Ò»ÁоÙÀ²£¬×Ô¼ºÀí½â°É¡£

ÉèÖÃËø³¬Ê±Ê±¼ä

·¢ÉúËÀËøµÄʱºò£¬Êý¾Ý¿âÒýÇæ»á×Ô¶¯¼ì²âËÀËø£¬½â¾öÎÊÌ⣬Ȼ¶øÕâÑù×ÓÊǺܱ»¶¯£¬Ö»ÄÜÔÚ·¢ÉúËÀËøºó£¬µÈ´ý´¦Àí¡£

È»¶øÎÒÃÇÒ²¿ÉÒÔÖ÷¶¯³ö»÷£¬ÉèÖÃËø³¬Ê±Ê±¼ä£¬Ò»µ©×ÊÔ´±»Ëø¶¨×èÈû£¬³¬¹ýÉèÖõÄËø¶¨Ê±¼ä£¬×èÈûÓï¾ä×Ô¶¯È¡Ïû£¬ÊÍ·Å×ÊÔ´£¬±¨1222´íÎó¡£

ºÃ¶«Î÷Ò»°ã¶¼¾ßÓÐÁ½ÃæÐÔ£¬µ÷ÓŵÄͬʱ£¬Ò²ÓÐËûµÄ²»×ãÖ®´¦£¬ÄǾÍÊÇÒ»µ©³¬¹ýʱ¼ä£¬Óï¾äÈ¡Ïû£¬ÊÍ·Å×ÊÔ´£¬µ«Êǵ±Ç°±¨´íÊÂÎñ£¬²»»á»Ø¹ö£¬»áÔì³ÉÊý¾Ý´íÎó£¬ÄãÐèÒªÔÚ³ÌÐòÖв¶»ñ1222´íÎó£¬ÓóÌÐò´¦Àíµ±Ç°ÊÂÎñµÄÂß¼­£¬Ê¹Êý¾ÝÕýÈ·¡£

--²é¿´³¬Ê±Ê±¼ä,ĬÈÏΪ-1

select @@lock_timeout

--ÉèÖó¬Ê±Ê±¼ä

set lock_timeout 0 --Ϊ0ʱ£¬¼´ÎªÒ»µ©·¢ÏÖ×ÊÔ´Ëø¶¨£¬Á¢¼´±¨´í£¬²»Ôڵȴý£¬µ±Ç°ÊÂÎñ²»»Ø¹ö£¬ÉèÖÃʱ¼äÐè½÷É÷´¦Àíºóʰ¡£¬Äãhold²»×¡µÄ¡£

×ÐϸÔĶÁ£¬Ï£ÍûÄÜ·ÖÏí¸øÄãÒ»µãµã¶«Î÷£¬Ð»Ð»£¬over¡£

   
2526 ´Îä¯ÀÀ       27
Ïà¹ØÎÄÕÂ

»ùÓÚEAµÄÊý¾Ý¿â½¨Ä£
Êý¾ÝÁ÷½¨Ä££¨EAÖ¸ÄÏ£©
¡°Êý¾Ýºþ¡±£º¸ÅÄî¡¢ÌØÕ÷¡¢¼Ü¹¹Óë°¸Àý
ÔÚÏßÉ̳ÇÊý¾Ý¿âϵͳÉè¼Æ ˼·+Ч¹û
 
Ïà¹ØÎĵµ

GreenplumÊý¾Ý¿â»ù´¡Åàѵ
MySQL5.1ÐÔÄÜÓÅ»¯·½°¸
ijµçÉÌÊý¾ÝÖÐ̨¼Ü¹¹Êµ¼ù
MySQL¸ßÀ©Õ¹¼Ü¹¹Éè¼Æ
Ïà¹Ø¿Î³Ì

Êý¾ÝÖÎÀí¡¢Êý¾Ý¼Ü¹¹¼°Êý¾Ý±ê×¼
MongoDBʵս¿Î³Ì
²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿âÉè¼ÆÓëÓÅ»¯
PostgreSQLÊý¾Ý¿âʵսÅàѵ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

MySQLË÷Òý±³ºóµÄÊý¾Ý½á¹¹
MySQLÐÔÄܵ÷ÓÅÓë¼Ü¹¹Éè¼Æ
SQL ServerÊý¾Ý¿â±¸·ÝÓë»Ö¸´
ÈÃÊý¾Ý¿â·ÉÆðÀ´ 10´óDB2ÓÅ»¯
oracleµÄÁÙʱ±í¿Õ¼äдÂú´ÅÅÌ
Êý¾Ý¿âµÄ¿çƽ̨Éè¼Æ


²¢·¢¡¢´óÈÝÁ¿¡¢¸ßÐÔÄÜÊý¾Ý¿â
¸ß¼¶Êý¾Ý¿â¼Ü¹¹Éè¼ÆÊ¦
HadoopÔ­ÀíÓëʵ¼ù
Oracle Êý¾Ý²Ö¿â
Êý¾Ý²Ö¿âºÍÊý¾ÝÍÚ¾ò
OracleÊý¾Ý¿â¿ª·¢Óë¹ÜÀí


GE Çø¿éÁ´¼¼ÊõÓëʵÏÖÅàѵ
º½Ìì¿Æ¹¤Ä³×Ó¹«Ë¾ Nodejs¸ß¼¶Ó¦Óÿª·¢
ÖÐÊ¢Òæ»ª ׿Խ¹ÜÀíÕß±ØÐë¾ß±¸µÄÎåÏîÄÜÁ¦
ijÐÅÏ¢¼¼Êõ¹«Ë¾ PythonÅàѵ
ij²©²ÊITϵͳ³§ÉÌ Ò×ÓÃÐÔ²âÊÔÓëÆÀ¹À
ÖйúÓÊ´¢ÒøÐÐ ²âÊÔ³ÉÊì¶ÈÄ£Ðͼ¯³É(TMMI)
ÖÐÎïÔº ²úÆ·¾­ÀíÓë²úÆ·¹ÜÀí