Ò׽ؽØÍ¼Èí¼þ¡¢µ¥Îļþ¡¢Ãâ°²×°¡¢´¿ÂÌÉ«¡¢½ö160KB

sql ÓαêµÄ»ù±¾Ó÷¨

1. ¶¨ÒåÓα궨Òå
ÓαêÓï¾äµÄºËÐÄÊǶ¨ÒåÁËÒ»¸öÓαê±êʶÃû£¬²¢°ÑÓαê±êʶÃûºÍÒ»¸ö²éѯÓï¾ä¹ØÁªÆðÀ´¡£DECLAREÓï¾äÓÃÓÚÉùÃ÷Óα꣬Ëüͨ¹ýSELECT²éѯ¶¨ÒåÓÎ±ê´æ´¢µÄÊý¾Ý¼¯ºÏ¡£Óï¾ä¸ñʽΪ£º
DECLARE ÓαêÃû³Æ [INSENSITIVE] [SCROLL]
CURSOR FOR selectÓï¾ä
[FOR{READ ONLY|UPDATE[OF ÁÐÃû×Ö±í]}]
²ÎÊý˵Ã÷£º
INSENSITIVEÑ¡Ï˵Ã÷Ëù¶¨ÒåµÄÓαêʹÓÃSELECTÓï¾ä²éѯ½á¹ûµÄ¿½±´£¬¶ÔÓαêµÄ²Ù×÷¶¼»ùÓڸÿ½±´½øÐС£Òò´Ë£¬ÕâÆÚ¼ä¶ÔÓαê»ù±¾±íµÄÊý¾ÝÐ޸IJ»ÄÜ·´Ó³µ½ÓαêÖС£ÕâÖÖÓαêÒ²²»ÔÊÐíͨ¹ýËüÐ޸Ļù±¾±íµÄÊý¾Ý¡£
SCROLLÑ¡Ïָ¶¨¸ÃÓαê¿ÉÓÃËùÓеÄÓαêÊý¾Ý¶¨Î»·½·¨ÌáÈ¡Êý¾Ý£¬Óα궨λ·½·¨°üÀ¨PRIOR¡¢FIRST¡¢LAST¡¢ABSOLUTE n ºÍRELATIVE n Ñ¡Ïî¡£
SelectÓï¾ä£ºÎª±ê×¼µÄSELECT²éѯÓï¾ä£¬Æä²éѯ½á¹ûΪÓαêµÄÊý¾Ý¼¯ºÏ£¬¹¹³ÉÓαêÊý¾Ý¼¯ºÏµÄÒ»¸ö»ò¶à¸ö±í³Æ×÷ÓαêµÄ»ù±í¡£
ÔÚÓαêÉùÃ÷Óï¾äÖУ¬ÓÐÏÂÁÐÌõ¼þ֮һʱ£¬ÏµÍ³×Ô¶¯°ÑÓα궨ÒåΪINSENSITIVEÓα꣺
SELECTÓï¾äÖÐʹÓÃÁËDISTINCT¡¢UNION¡¢ GROUP BY»òHAVINGµÈ¹Ø¼ü×Ö£»
ÈÎÒ»¸öÓαê»ù±íÖв»´æÔÚΨһË÷Òý¡£
ÆäËû
READ ONLYÑ¡Ï˵Ã÷¶¨ÒåÖ»¶ÁÓαꡣ
UPDATE [OF ÁÐÃû×Ö±í]Ñ¡Ï¶¨ÒåÓαê¿ÉÐ޸ĵÄÁС£Èç¹ûʹÓÃOF ÁÐÃû×Ö±íÑ¡Ï˵Ã÷Ö»ÔÊÐíÐÞ¸ÄËùÖ¸¶¨µÄÁУ¬·ñÔò£¬ËùÓÐÁоù¿ÉÐ޸ġ£
ÀýÈ磬²éѯ½ÌʦÃû×ÖºÍËù½ÌµÄ¿Î³ÌÃû£¬¶¨ÒåÓαêTCURSORµÄÓï¾äÈçÏ £º
DECLARE TCURSOR CURSOR FOR
SELECT tname, cname
from teacher ,couse
WHERE teacher.tno = couse.tno
2. ´ò¿ªÓαê
´ò¿ªÓαêÓï¾äÖ´ÐÐÓα궨ÒåÖеIJéѯÓï¾ä£¬²éѯ½á¹û´æ·ÅÔÚÓα껺³åÇøÖС£²¢Ê¹ÓαêÖ¸ÕëÖ¸ÏòÓαêÇøÖеĵÚÒ»¸öÔª×飬×÷ΪÓαêµÄȱʡ·ÃÎÊλÖᣲéѯ½á¹ûµÄÄÚÈÝÈ¡¾öÓë²éѯÓï¾äµÄÉèÖúͲéѯÌõ¼þ¡£
´ò¿ªÓαêµÄÓï¾ä¸ñʽ£º
EXEC SQL OPEN ¡´ÓαêÃû¡µ
Èç¹û´ò¿ªµÄÓαêΪINSENSITIVEÓα꣬ÔÚ´ò¿ªÊ±½«²úÉúÒ»¸öÁÙʱ±í£¬½«¶¨ÒåµÄÓαêÊý¾Ý¼¯ºÏ´ÓÆä»ù±íÖп½±´¹ýÀ´¡£
SQL ServerÖÐ,Óαê´ò¿ªºó£¬¿ÉÒÔ´ÓÈ«¾Ö±äÁ¿@@CURSOR_ROWSÖжÁÈ¡Óαê½á¹û¼¯ºÏÖеÄÐÐÊý¡£
Àý1£º´ò¿ªÇ°ÃæËù´´½¨µÄ²éѯ½ÌʦÐÕÃûºÍËù½Ì¿ÎÃû³ÆµÄÓαꡣ
OPEN tcursor
Àý2£ºÏÔʾÓαê½á¹û¼¯ºÏÖÐÊý¾ÝÐÐÊý
SELECT Êý¾ÝÐÐÊý = @@CURSOR_ROWS
3. ¶ÁÓαêÇøÖеĵ±Ç°Ôª×é
¶ÁÓαêÇøÊý¾ÝÓï¾äÊǶÁÈ¡ÓαêÇøÖе±Ç°Ôª×éµÄÖµ£¬²¢½«¸÷·ÖÁ¿ÒÀ´Î¸³¸øÖ¸¶¨µÄ¹²ÏíÖ÷±äÁ¿¡£FETCHÓï¾äÓÃÓÚ¶ÁÈ¡ÓαêÖеÄÊý¾Ý£¬Óï¾ä¸ñʽΪ£º
FETCH [[NEXT|PRIOR|FIRST|LAST| ABSOLUTE n| RELATIVE n]
from ] ÓαêÃû
[INTO @


Ïà¹ØÎĵµ£º

SQL ServerÖÐcaseµÄÓ÷¨

µÚÒ»ÖÖÓ÷¨£º
SELECT (CASE type WHEN 'u' THEN 'Óû§±í' WHEN 's' THEN 'ϵͳ±í' ELSE 'ÆäËû' END) AS TABLEKIND,* from SYSOBJECTS
µÚ¶þÖÐÓ÷¨£º
SELECT (CASE WHEN crdate<'2006-01-01' THEN 'early' WHEN crdate<'2009-01-01' THEN 'nearly' ELSE 'now' END) AS PERIOD,* from SYSOBJECTS ......

SQL Server²éѯһÖÜÄڵļǼ

select * from tableName where datediff(week,dateField,getdate())=0
ÕâÑù²é³öÀ´µÄ½á¹ûÊÇ´ÓÐÇÆÚÌìµ½ÐÇÆÚÁù(ÀÏÍâĬÈÏÐÇÆÚÌìÊÇÒ»ÖܵĵÚÒ»Ìì).
Èç¹ûÏëÒÔÐÇÆÚÒ»×÷ΪµÚÒ»ÌìµÄ»°,Á½¸öʱ¼ä¶¼ÐèÒª¼õÒ»,ÈçÏÂ:
select * from tableName where datediff(week,dateField-1,getdate()-1)=0 ......

SQL ServerÊÓͼÖг£見ÏÞÖÆÌõ¼þ

--> Title  : SQL ServerÊÓͼÖг£見ÏÞÖÆÌõ¼þ
--> Author : wufeng4552
--> Date   : 2010-03-01
(1): ÊÓͼÊý¾Ý¸ü¸ÄµÄ³£見ÏÞ¶¨
µ±Óû§¸üÐÂÊÓͼÖеÄÊý¾Ýʱ,Æäʵ¸ü¸ÄµÄÊÇÆä¶ÔÓ¦µÄÊý¾Ý±íµÄÊý¾Ý.ÎÞÂÛÊǶÔÊÓͼÖеÄÊý¾Ý½øÐиü¸Ä,»¹ÊÇÔÚÊÓͼÖвåÈë»òÕßɾ³ýÊý¾Ý,¶¼ÊÇÀàËÆµÄµÀÀí.µ«ÊÇ,² ......

SQL Convert ʱ¼ä½ØÈ¡£¨×ª»¯£©Ñùʽ

ÄÚÈÝת×Ô£ºhttp://blog.csdn.net/lfzwenzhu/archive/2008/03/06/2153473.aspx
SELECT CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
SELECT CONVERT(varchar(100), GETDATE(), 1): 05/16/06
SELECT CONVERT(varchar(100), GETDATE(), 2): 06.05.16
SELECT CONVERT(varchar(100), GETDATE(), 3): 16/05/06
......

»ñÈ¡Êý¾Ý¿âÖеıí½á¹¹µÄsqlÓï¾ä

--»ñȡij¸öÊý¾Ý¿âÖеıí½á¹¹
SELECT    
  --±íÃû=case   when   a.colorder=1   then   d.name   else   ''   end,
  ÐòºÅ=a.colorder,
  --±êʶ=case   when   COLUMNPROPERTY(&nbs ......
© 2009 ej38.com All Rights Reserved. ¹ØÓÚE½¡ÍøÁªÏµÎÒÃÇ | Õ¾µãµØÍ¼ | ¸ÓICP±¸09004571ºÅ