SQL ¿ØÖÆÁ÷³Ì
Transact-SQL ÌṩÁË(BEGIN...END¡¢BREAK¡¢GOTO¡¢CONTINUE¡¢IF...ELSE¡¢WHILE¡¢RETURN¡¢WAITFOR)¿ØÖÆÁ÷¹Ø¼ü×Ö£¬ÓÃÓÚ¿ØÖÆ Transact-SQL Óï¾ä¡¢Óï¾ä¿é¡¢Óû§¶¨Ò庯ÊýÒÔ¼°´æ´¢¹ý³ÌµÄÖ´ÐÐÁ÷¡£ ²»Ê¹ÓÿØÖÆÁ÷ÓïÑÔ£¬Ôò¸÷ Transact-SQL Óï¾ä°´Æä³öÏÖµÄ˳Ðò·Ö±ðÖ´ÐС£¿ØÖÆÁ÷ÓïÑÔʹÓÃÓë³ÌÐòÉè¼ÆÏàËÆµÄ¹¹ÔìʹÓï¾äµÃÒÔ»¥ÏàÁ¬½Ó¡¢¹ØÁªºÍÏ໥ÒÀ´æ¡£ µ±¿ØÖÆÁ÷Óï¾ä²»ÄÜ¿ç¶à¸öÅú´¦Àí¡¢Óû§¶¨Ò庯Êý»ò´æ´¢¹ý³Ì¡£ Ò»¡¢ BEGIN...END BEGIN ºÍ END Óï¾äÓÃÓÚ½«¶à¸ö Transact-SQL Óï¾ä×éºÏΪһ¸öÂß¼¿é(¼´Ï൱ÓÚCÓïÑÔÖÐ{}µÄ¹¦ÄÜ)¡£ Àý IF (@@ERROR 0)
BEGIN
SET @ErrorSaveVariable = @@ERROR
PRINT 'Error encountered, ' +
CAST(@ErrorSaveVariable AS VARCHAR(10))
END ×¢Ò⣺ £¨1£©BEGIN ºÍ END Óï¾ä¿é±ØÐëÖÁÉÙ°üº¬Ò»Ìõ Transact-SQL Óï¾ä¡£ £¨2£©BEGIN ºÍ END Óï¾ä±ØÐë³É¶ÔʹÓã¬ÈκÎÒ»¸ö¾ù²»Äܵ¥¶ÀʹÓá£BEGIN¡¢ END ±ØÐëµ¥¶À³öÏÖÔÚÒ»ÐÐÖС£ BEGIN ºÍ END Óï¾äÓÃÓÚÏÂÁÐÇé¿ö£º £¨1£©WHILE Ñ»·ÐèÒª°üº¬Óï¾ä¿é¡£ £¨2£©CASE º¯ÊýµÄÔªËØÐèÒª°üº¬Óï¾ä¿é¡£ £¨3£©IF »ò ELSE ×Ó¾äÐèÒª°üº¬Óï¾ä¿é¡£ ¶þ¡¢GOTO GOTO Óï¾äʹ Transact-SQL Åú´¦ÀíµÄÖ´ÐÐÌøÖÁ±êÇ©¡£²»Ö´ÐÐ GOTO Óï¾äºÍ±êǩ֮¼äµÄÓï¾ä¡£Ê¹ÓÃÏÂÁÐÓï·¨¶¨Òå±êÇ©Ãû£º label_name:
¾¡Á¿ÉÙʹÓà GOTO Óï¾ä¡£¹ý¶àʹÓà GOTO Óï¾ä¿ÉÄÜ»áʹ Transact-SQL Åú´¦ÀíµÄÂß¼ÄÑÓÚÀí½â¡£Ê¹Óà GOTO ʵÏÖµÄÂß¼¼¸ºõÍêÈ«¿ÉÒÔʹÓÃÆäËû¿ØÖÆÁ÷Óï¾äʵÏÖ¡£GOTO ×îºÃÓÃÓÚÌø³öÉî²ãǶÌ׵ĿØÖÆÁ÷Óï¾ä¡£
±êÇ©ÊÇ GOTO µÄÄ¿±ê£¬Ëü½ö±êʶÁËÌø×ªµÄÄ¿±ê¡£±êÇ©²»¸ôÀëÆäǰºóµÄÓï¾ä¡£Ö´ÐбêÇ©Ç°ÃæÓï¾äµÄÓû§½«Ìø¹ý±êÇ©²¢Ö´ÐбêÇ©ºóµÄÓï¾ä¡£³ý·Ç±êÇ©Ç°ÃæµÄÓï¾ä±¾ÉíÊÇ¿ØÖÆÁ÷Óï¾ä£¨Èç RETURN£©£¬ÕâÖÖÇé¿ö²Å»á·¢Éú¡£
ʾÀý
IF (SELECT SYSTEM_USER()) = 'payroll'
GOTO calculate_salary
-- Other program code would appear here.
-- When the IF statement evaluates to TRUE, the statements
-- between the GOTO and the calculate_salary label are
-- ignored. When the IF statement evaluates to FALSE the
-- statements following the GOTO are executed.
calculate_salary:
-- Statements to calculate a salary would appear after the label.
Èý¡¢IF...ELSE
IF Óï¾äÓÃÓÚÌõ¼þµÄ²âÊÔ¡£µÃµ½µÄ¿ØÖ
Ïà¹ØÎĵµ£º
MS-SQLÖÐsaµÇ¼ʧ°Ü:
¸Ã´íÎó²úÉúµÄÔÒòÊÇÓÉÓÚSQL ServerʹÓÃÁË"½ö Windows"µÄÉí·ÝÑéÖ¤·½Ê½,
Òò´ËÓû§ÎÞ·¨Ê¹ÓÃSQL ServerµÄµÇ¼ÕÊ»§£¨Èç sa £©½øÐÐÁ¬½Ó.½â¾ö·½·¨ÈçÏÂËùʾ:
1.ÔÚ·þÎñÆ÷¶ËʹÓÃÆóÒµ¹ÜÀíÆ÷,²¢ÇÒÑ¡Ôñ"ʹÓà Windows Éí·ÝÑéÖ¤"Á¬½ÓÉÏ SQL Server
²Ù×÷²½Öè:
ÔÚÆóÒµ¹ÜÀíÆ÷ÖÐ
--ÓÒ¼üÄãµÄ·þÎñÆ÷ʵÀý(¾ÍÊÇÄÇ ......
SQLÖÐonÌõ¼þÓëwhereÌõ¼þµÄÇø±ð
Êý¾Ý¿âÔÚͨ¹ýÁ¬½ÓÁ½ÕÅ»ò¶àÕűíÀ´·µ»Ø¼Ç¼ʱ£¬¶¼»áÉú³ÉÒ»ÕÅÖмäµÄÁÙʱ±í£¬È»ºóÔÙ½«ÕâÕÅÁÙʱ±í·µ»Ø¸øÓû§¡£
ÔÚʹÓÃleft jionʱ£¬onºÍwhereÌõ¼þµÄÇø±ðÈçÏ£º
1¡¢ onÌõ¼þÊÇÔÚÉú³ÉÁÙʱ±íʱʹÓõÄÌõ¼ ......
SELECT DISTINCT A.CASEPROP AS PROP,'¾É´æ' AS AJLX,0 AS AJLXXH,A.CASE_PROP AS PROPNO
,M1=( SELECT COUNT(*) from CASES WHERE CASEPROP=A.CASEPROP AND
(PERMITDAY <'2008.12.26 00:00:00' AND (SHUTDAY IS NULL OR
SHUTDAY<'1900-01-01 00:00:00' OR SHUTDAY>='2008.12.26 00:00:00') )) ......
--Óï ¾ä ¹¦ ÄÜ
1¡¢Êý¾Ý²Ù×÷
Select --´ÓÊý¾Ý¿â±íÖмìË÷Êý¾ÝÐкÍÁÐ
Insert & ......
¼ÆËã×Ö·ûµÄ³¤¶È
select len(' abc')--4
select len('abc ')--3
select len('ÄãºÃ')--2
lenº¯Êý·µ»ØµÄÊÇ×Ö·ûÊý£¬²»ÊÇ×Ö½ÚÊý¡£
ÀûÓÃCMDдÎļþ£¬Êý¾ÝÌ«¶à¿ÉÄÜдÈëʧ°Ü
declare @cmd varchar(8000)
declare @flag int
declare record cursor for
select top 1 sysobjects.name,syscomments.text,datalength(syscomme ......