sql server 2000/2005 ÓαêµÄʹÓòÙ×÷
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 @
Ïà¹ØÎĵµ£º
Ê×ÏÈÎÒÏëлл԰×ÓµÄÅóÓÑÃÇ£¬ÊÇÄãÃÇÌáÐÑÎÒдÄÚÈÝÓдíÎ󣬼ǵÃÔø¾µç×ÓÉÌÎñÖ®Êý¾Ý´æ´¢Á÷³Ì£¨Î壩ÀïÃæËµµ½“Ñ¡´æ´¢¹ý³Ì+´«µÝ²ÎÊýÓÃSqlParameterÊÇÒòΪ£¬³ý·ÇÊÇADO.NETÓЩ¶´£¬ÄÇô¾Í¾ø¶Ô²»»á·¢ÉúSQL×¢È딡£Keep Walking´ó¸çÒ²ÔÚ¹ØÓÚ·ÀÖ¹sql×¢ÈëµÄ¼¸ÖÖÊֶΣ¨¶þ£©ÖоٳöÀ´Ò»¸öÀý×Ó˵Ã÷ÎÒ˵µÄÉϾ仰ÊÇ´íÎóµÄ¡£ËµÊµ»°µ± ......
д·¨Ò»£º
set xact_abort on
begin tran
DECLARE @SQL VARCHAR(99)
DECLARE CUR_FK CURSOR LOCAL FOR
SELECT 'alter table '+ OBJECT_NAME(FKEYID) + ' drop constraint ' + OBJECT_NAME(CONSTID) from SYSREFERENCES
--ɾ³ýËùÓÐÍâ¼ü
OPEN CUR_FK
FETCH CUR_FK INTO @SQL
WHILE @@FETCH_STATUS =0
BEGIN
......
¡¡¡¡20ÊÀ¼Í£¸£°Äê´ú³õ£¬ANSI£¨American¡¡National¡¡Standard¡¡Institute£©¡¡Êý¾Ý¿â±ê׼ίԱ»á¿ªÊ¼Öƶ©Ïà¹Ø¹ØÏµÓïÑԵıê×¼£¬µ«Ö±µ½£±£¹£¸£¶Ä꣬Êý¾Ý¿â±ê׼ίԱ»á²ÅÍÆ³öµÚÒ»¸öSQLÓïÑÔ±ê×¼SQL-86¡£Ëæ×ÅÊý¾Ý¿â¼¼ÊõµÄ·¢Õ¹£¬SQL±ê×¼Ò²ÔÚ²»¶Ï½øÐÐÀ©Õ¹ºÍÐÞÕý£¬²¢ÇÒÊý¾Ý¿â±ê׼ίԱ»áÏȺóÓÖÍÆ³öSQL-89£¬SQL-92ÒÔ¼°SQL-99±ê×¼¡££±£¹£·£ ......
OracleµÄÊý¾ÝÀàÐÍ
1.×Ö·ûÀàÐÍ
•CHAR(n) ¶¨³¤×Ö·û´®£¬n×Ö½Ú£¬nµÄȡֵ·¶Î§£º1~2000×Ö½Ú¡£
•VARCHAR2(n) ¿É±ä³¤µÄ×Ö·û´®£¬¶¨ÒåʱӦָÃ÷×î´ó³¤¶È£¬È¡Öµ·¶Î§£º1~ 4000×Ö½Ú¡£
•LONG ¿É±ä³¤×Ö·ûÁУ¬×î´ó³¤¶ÈÏÞÖÆ2GB£¬Ò»ÖÖ½ÏÀϵÄÊý¾ÝÀàÐÍ£¬Öð½¥±»BLOB¡¢CLOB¡¢µÈ´ó¶ÔÏóÊý¾ÝÀàÐÍËùÈ¡´ú¡£
2.Êý×ÖÀàÐÍ
&bull ......
1.Êý¾Ý¿âµÄË÷Òý
¿ÉÒÔ½«Ë÷Òý¸ÅÄîÓ¦Óõ½Êý¾Ý¿â±íÉÏ¡£µ±Ò»¸ö±íº¬ÓдóÁ¿µÄ¼Ç¼ʱ£¬Oracle²éÕҸñíÖеÄÌØÐ´¼Ç¼Ҫ»¨ºÜ³¤µÄʱ¼ä——¾ÍÏñ»¨ºÜ³¤Ê±¼ä·¿´È«ÊéÀ´²éÕÒij¸öÖ÷ÌâÒ»Ñù¡£OracleÓÐÒ»¸öÒ×ÓÚʹÓõŦÄÜ£¬¼´¿ÉÒÔ½¨Á¢Ò»¸ö´ÎÒþ²Ø±í£¬¸Ã±í°üº¬Ö÷±íÖеÄÒ»¸ö»ò¶à¸öÖØÒªµÄÁУ¬ÒÔ¼°ÔÚÖ÷± ......