SQL SERVER¶¨Ê±×÷ÒµµÄÉèÖ÷½·¨
SQL SERVER¶¨Ê±×÷ÒµµÄÉèÖ÷½·¨
תÌù×Ô£º http://www.cnblogs.com/stephencat/archive/2006/08/24/484918.html
Èç¹ûÔÚSQL Server ÀïÐèÒª¶¨Ê±»òÕßÿ¸ôÒ»¶Îʱ¼äÖ´ÐÐij¸ö´æ´¢¹ý³Ì»ò3200×Ö·ûÒÔÄÚµÄSQLÓï¾äʱ,
¿ÉÒÔÓùÜÀí->SQL Server´úÀí->×÷ÒµÀ´ÊµÏÖ¡£
1¡¢¹ÜÀí->SQL Server´úÀí->×÷Òµ(°´Êó±êÓÒ¼ü)->н¨×÷Òµ->
2¡¢Ð½¨×÷ÒµÊôÐÔ(³£¹æ)->Ãû³Æ[×Ô¶¨Òå±¾´Î×÷ÒµµÄÃû³Æ]->ÆôÓõķ½¿òÄÚÊǹ´ºÅ->
·ÖÀà´¦¿ÉÑ¡ÔñÒ²¿ÉÓÃĬÈϵÄ[δ·ÖÀà(±¾µØ)]->ËùÓÐÕßĬÈÏΪµÇ¼SQL ServerÓû§[Ò²¿ÉÑ¡ÆäËüµÄµÇ¼]->
ÃèÊö[Ìîд±¾´Î¹¤×÷ÏêϸÃèÊöÄÚÈÝ]£»
[ ´´½¨×÷Òµ·ÖÀàµÄ²½Öè:
SQL Server´úÀí->×÷Òµ->ÓÒ¼üÑ¡ËùÓÐÈÎÎñ->Ìí¼Ó¡¢Ð޸ġ¢É¾³ý ]
3¡¢Ð½¨×÷ÒµÊôÐÔ(²½Öè)->н¨->²½ÖèÃû[×Ô¶¨ÒåµÚÒ»²½ÖèÃû³Æ]->ÀàÐÍ[Transact-SQL(TSQL)½Å±¾]->
Êý¾Ý¿â[Òª²Ù×÷µÄÊý¾Ý¿â]->ÃüÁî
[ Èç¹ûÊǼòµ¥µÄSQLÖ±½Óд½øÈ¥¼´¿É£¬Ò²¿ÉÓôò¿ª°´Å¥ÊäÈëÒ»¸öÒÑдºÃµÄ*.sqlÎļþ
Èç¹ûÒªÖ´Ðд洢¹ý³Ì£¬Ìî
exec p_procedure_name v_parameter1,[ v_parameter2…v_parameterN]
]
->È·¶¨
(Èç¹ûÓжà¸ö²½Ö裬¿ÉÒÔÔٴε÷ÓÃÏÂÃæµÄн¨°´Å¥£»Ò²¿ÉÒÔ¶ÔÒÑÓеĶà¸ö²½Öè²åÈë¡¢±à¼¡¢É¾³ý)£»
4¡¢½¨×÷ÒµÊôÐÔ(µ÷¶È)->н¨µ÷¶È->Ãû³Æ[×Ô¶¨Òåµ÷¶ÈÃû³Æ]->ÆôÓõķ½¿òÄÚÊǹ´ºÅ->µ÷¶È->·´¸´³öÏÖ->
¸ü¸Ä[µ÷¶Èʱ¼ä±í]->È·¶¨
(Èç¹ûÖ»Òª±£´æ´Ë×÷Òµ£¬²»Òª¶¨Ê±×ö¿ÉÒÔ°ÑÆôÓõķ½¿òÄÚÊǹ´ºÅÈ¥µô)£»
5¡¢½¨×÷ÒµÊôÐÔ(֪ͨ)->ÓÃĬÈϵÄ֪ͨ·½·¨¾ÍºÃ[µ±×÷ҵʧ°Üʱ£¬Ð´ÈëWindowsÓ¦ÓóÌÐòϵͳÈÕÖ¾] ->È·¶¨¡£
¸ú×÷ÒµÖ´ÐÐÏà¹ØµÄһЩSQL Server֪ʶ£º
SQLSERVERAGENT·þÎñ±ØÐëÕý³£ÔËÐУ¬Æô¶¯ËüµÄNTµÇ¼Óû§Òª¸úÆô¶¯SQL ServerÊý¾Ý¿âµÄNTµÇ¼Óû§Ò»Ö¡£
µã×÷ÒµÓÒ¼ü¿ÉÒԲ鿴×÷ÒµÖ´ÐеÄÀúÊ·¼Ç¼Çé¿ö£¬Ò²¿ÉÒÔÁ¢¼´Æô¶¯×÷ÒµºÍÍ£Ö¹×÷Òµ¡£
×î½üÔÚ¿´×÷ÒµÀúÊ·¼Ç¼ʱ,·¢ÏÖÓеÄ×÷Òµ¼Ç¼µÄÀúÊ·¼Ç¼¶à,ÓеÄ×÷Òµ¼Ç¼µÄ¼Ç¼µÄÀúÊ·¼Ç¼ÉÙ.
ÈçºÎ
Ïà¹ØÎĵµ£º
[C#]
public void RunSqlTransaction(string myConnString)
{
SqlConnection myConnection = new SqlConnection(myConnString);
myConnection.Open();
SqlCommand myCommand = myConnection.CreateCommand();
SqlTransaction m ......
MySQL·þÎñÆ÷°üº¬Ò»Ð©ÆäËûSQL DBMSÖв»¾ß±¸µÄÀ©Õ¹¡£×¢Ò⣬Èç¹ûʹÓÃÁËËüÃÇ£¬½«ÎÞ·¨°Ñ´úÂëÒÆÖ²µ½ÆäËûSQL·þÎñÆ÷¡£ÔÚijЩÇé¿öÏ£¬Äã¿ÉÒÔ±àд°üº¬MySQLÀ©Õ¹µÄ´úÂ룬µ«ÈÔ±£³ÖÆä¿ÉÒÆÖ²ÐÔ£¬·½·¨ÊÇÓÓ/*... */”×¢Ê͵ôÕâЩÀ©Õ¹¡£MySQL·þÎñÆ÷Äܹ»½âÎö²¢Ö´ÐÐ×¢ÊÍÖеĴúÂ룬¾ÍÏñ¶Ô´ýÆäËûMySQLÓï¾äÒ»Ñù£¬µ«ÆäËûSQL·þÎñÆ÷½«ºöÂÔ ......
declare @i int
set @i=1
while @i<30
begin
insert into test (userid) values(@i)
set @i=@i+1
end
---------------
while Ìõ¼þ
begin
Ö´ÐвÙ×÷
set @i=@i+1
end
WHILE
ÉèÖÃÖØ¸´Ö´ÐÐ SQL Óï¾ä»òÓï¾ä¿éµÄÌõ¼þ¡£Ö»ÒªÖ¸¶¨µÄÌõ¼þÎªÕæ£¬¾ÍÖØ¸´Ö´ÐÐÓï¾ä¡£¿ÉÒÔʹÓà BREAK ºÍ CONTINUE ¹Ø¼ü×ÖÔÚÑ»·ÄÚ²¿¿ ......
ÔÚSQLÓï¾äÓÅ»¯¹ý³ÌÖУ¬ÎÒÃǾ³£»áÓõ½hint,ÏÖ×ܽáÒ»ÏÂÔÚSQLÓÅ»¯¹ý³ÌÖг£¼ûOracle HINTµÄÓ÷¨£º
1. /*+ALL_ROWS*/
±íÃ÷¶ÔÓï¾ä¿éÑ¡Ôñ»ùÓÚ¿ªÏúµÄÓÅ»¯·½·¨,²¢»ñµÃ×î¼ÑÍÌÍÂÁ¿,ʹ×ÊÔ´ÏûºÄ×îС»¯.
ÀýÈç:
SELECT /*+ALL+_ROWS*/ EMP_NO,EMP_NAM,DAT_IN from BSEMPMS WHERE EMP_NO=’SCOTT’;
2. /*+FIRST_ROWS*/
±í ......