SQLÑ»·Óï¾ä
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 ¹Ø¼ü×ÖÔÚÑ»·ÄÚ²¿¿ØÖÆ WHILE Ñ»·ÖÐÓï¾äµÄÖ´ÐС£
Óï·¨
WHILE Boolean_expression
{ sql_statement | statement_block }
[ BREAK ]
{ sql_statement | statement_block }
[ CONTINUE ]
²ÎÊý
Boolean_expression
·µ»Ø TRUE »ò FALSE µÄ±í´ïʽ¡£Èç¹û²¼¶û±í´ïʽÖк¬ÓÐ SELECT Óï¾ä£¬±ØÐëÓÃÔ²À¨ºÅ½« SELECT Óï¾äÀ¨ÆðÀ´¡£
{sql_statement | statement_block}
Transact-SQL Óï¾ä»òÓÃÓï¾ä¿é¶¨ÒåµÄÓï¾ä·Ö×é¡£ÈôÒª¶¨ÒåÓï¾ä¿é£¬ÇëʹÓÿØÖÆÁ÷¹Ø¼ü×Ö BEGIN ºÍ END¡£
BREAK
µ¼Ö´Ó×îÄÚ²ãµÄ WHILE Ñ»·ÖÐÍ˳ö¡£½«Ö´ÐгöÏÖÔÚ END ¹Ø¼ü×ÖºóÃæµÄÈκÎÓï¾ä£¬END ¹Ø¼ü×ÖΪѻ·½áÊø±ê¼Ç¡£
CONTINUE
ʹ WHILE Ñ»·ÖØпªÊ¼Ö´ÐУ¬ºöÂÔ CONTINUE ¹Ø¼ü×ÖºóµÄÈκÎÓï¾ä¡£
×¢ÊÍ
Èç¹ûǶÌ×ÁËÁ½¸ö»ò¶à¸ö WHILE Ñ»·£¬ÄÚ²ãµÄ BREAK ½«µ¼ÖÂÍ˳öµ½ÏÂÒ»¸öÍâ²ãÑ»·¡£Ê×ÏÈÔËÐÐÄÚ²ãÑ»·½áÊøÖ®ºóµÄËùÓÐÓï¾ä£¬È»ºóÏÂÒ»¸öÍâ²ãÑ»·ÖØпªÊ¼Ö´ÐС£
ʾÀý
A. ÔÚǶÌ×µÄ IF...ELSE ºÍ WHILE ÖÐʹÓà BREAK ºÍ CONTINUE
ÔÚÏÂÀýÖУ¬Èç¹ûƽ¾ù¼Û¸ñÉÙÓÚ $30£¬WHILE Ñ»·¾Í½«¼Û¸ñ¼Ó±¶£¬È»ºóÑ¡Ôñ×î¸ß¼Û¡£Èç¹û×î¸ß¼ÛÉÙÓÚ»òµÈÓÚ $50£¬WHILE Ñ»·ÖØÐÂÆô¶¯²¢Ôٴν«¼Û¸ñ¼Ó±¶¡£¸ÃÑ»·²»¶ÏµØ½«¼Û¸ñ¼Ó±¶Ö±µ½×î¸ß¼Û¸ñ³¬¹ý $50£¬È»ºóÍ˳ö WHILE Ñ»·²¢´òÓ¡Ò»ÌõÏûÏ¢¡£
USE pubs
GO
WHILE (SELECT AVG(price) from titles) < $30
BEGIN
UPDATE titles
SET price = price * 2
SELECT MAX(price) from titles
IF (SELECT MAX(price) from titles) > $50
BREAK
ELSE
CONTINUE
END
PRINT 'Too much for the market to bear'
B. ÔÚ´øÓÐÓαêµÄ¹ý
Ïà¹ØÎĵµ£º
¶ÔÓÚWebÓ¦ÓÃÀ´Ëµ£¬×¢Éäʽ¹¥»÷ÓÉÀ´ÒѾ㬹¥»÷·½Ê½Ò²Î廨°ËÃÅ£¬³£¼ûµÄ¹¥»÷·½Ê½ÓÐSQL×¢Éä¡¢ÃüÁî×¢ÉäÒÔ¼°Ð½ü²Å³öÏÖµÄXPath×¢ÉäµÈµÈ¡£±¾ÎĽ«ÒÔSQL×¢ÉäΪÀý£¬ÔÚÔ´Â뼶¶ÔÆä¹¥»÷ÔÀí½øÐÐÉîÈëµÄ½²½â¡£
Ò»¡¢×¢Éäʽ¹¥»÷µÄÔÀí
×¢Éäʽ¹¥»÷µÄ¸ùÔ´ÔÚÓÚ£¬³ÌÐòÃüÁîºÍÓû§Êý¾Ý£¨¼´Óû§ÊäÈ룩֮¼äûÓÐ×öµ½ãþμ·ÖÃ÷¡£ÕâʹµÃ¹¥»÷ÕßÓлú»á½« ......
Êý¾Ý¿âÖ´ÐÐexec sp_renamedb 'oldname','newname'Óï¾ä£¬ÖØÃüÃûºó£¬½«Êý¾Ý¿â±¸·ÝÎļþ»¹Ôʱ£¬»á³öÏÖ´íÎó£¬Èçͼ
ÒòÊýÊý¾ÝÎļþÓëÊý¾Ý¿âÃû³Æ²»Ò»Ö¡£
½â¾ö·½·¨£º¿ÉÒÔÕÒµ½Êý¾ÝÎļþµÄÃû³Æ£¬½«Êý¾Ý¿â»¹ÔÃû³Æ¸úÊý¾Ý¿âÎļþÒ»ÖµÄÃû³Æ£¬´Ëʱ»¹Ô³É¹¦ºó£¬ÔÙÐÞ¸ÄÊý¾Ý¿âµÄÃû³Æ¡£
×¢£ºÊý¾Ý¿âÖØÃüʱ£¬Ð轫SQL·þÎñÆ÷Í£Ö¹£¬ÖØÃüÃûºóÔÙÖØÐ ......
'ÔÚÒýÓÃÀïÌí¼ÓADODB
Public vscn As ADODB.Connection
Public SQLString As String
SQLString = "Provider=SQLOLEDB.1;Password=ÃÜÂë;Persist Security Info=True;User ID=ÓÃ" & _
"»§;Initial Catalog=Êý¾Ý¿âÃû;Data Source=·þÎñÆ÷Ãû"
  ......
Dim rs As ADODB.Recordset
Dim sqlstr As String
'²éѯ
sqlstr = "select * from ±íÃû where ×Ö¶ÎÃû = '" & ²éѯµÄÄÚÈÝ & "'"
rs = VScn.Execute("" & SqlSt ......
SQLÓï¾äÖеÄÈý¸ö¹Ø¼ü×Ö:MINUS(¼õÈ¥),INTERSECT(½»¼¯)ºÍUNION ALL(²¢¼¯);
¹ØÓÚ¼¯ºÏµÄ¸ÅÄî,ÖÐѧ¶¼Ó¦¸Ãѧ¹ý,¾Í²»¶à˵ÁË.ÕâÈý¸ö¹Ø¼ü×ÖÖ÷ÒªÊǶÔÊý¾Ý¿âµÄ²éѯ½á¹û½øÐвÙ×÷,ÕýÈçÆäÖÐÎĺ¬ÒåÒ»Ñù:Á½¸ö²éѯ,MINUSÊÇ´ÓµÚÒ»¸ö²éѯ½á¹û¼õÈ¥µÚ¶þ¸ö²éѯ½á¹û,Èç¹ûÓÐÏཻ²¿·Ö¾Í¼õÈ¥Ïཻ²¿·Ö;·ñÔòºÍµÚÒ»¸ö²éѯ½á¹ûûÓÐÇø±ð. INTERSECTÊÇÁ½¸ö² ......