SQL SERVER Óαê
SqlServer 2000 ÓαêÓ÷¨Ð¡Àý ·µ¯ÑºÎ²É£Cannon(¿¨Ù¯) »
--------------------------------------------------------------------------------
DECLARE CURSOR (T-SQL)´´½¨Óαê
September 14th, 2006 by OoperMan (1 votes, average: 5 out of 5) Loading ...
SQL Server 2005 Áª»ú´ÔÊé
DECLARE CURSOR (Transact-SQL)
¸üÐÂÈÕÆÚ£º 2005 Äê 12 Ô 5 ÈÕ
¶¨Òå Transact-SQL ·þÎñÆ÷ÓαêµÄÊôÐÔ£¬ÀýÈçÓαêµÄ¹ö¶¯ÐÐΪºÍÓÃÓÚÉú³ÉÓαêËù²Ù×÷µÄ½á¹û¼¯µÄ²éѯ¡£DECLARE CURSOR ½ÓÊÜ»ùÓÚ SQL-92 ±ê×¼µÄÓï·¨ºÍʹÓÃÒ»×é Transact-SQL À©Õ¹²å¼þµÄÓï·¨¡£
Transact-SQL Óï·¨Ô¼¶¨
Óï·¨
SQL 92 Syntax
DECLARE cursor_name [ INSENSITIVE ] [ SCROLL ] CURSOR
FOR select_statement
[ FOR ...{ READ ONLY | UPDATE [ OF column_name [ ,...n ] ] } ]
[;]
Transact-SQL Extended Syntax
DECLARE cursor_name CURSOR [ LOCAL | GLOBAL ]
[ FORWARD_ONLY | SCROLL ]
[ STATIC | KEYSET | DYNAMIC | FAST_FORWARD ]
[ READ_ONLY | SCROLL_LOCKS | OPTIMISTIC ]
[ TYPE_WARNING ]
FOR select_statement
[ FOR UPDATE [ OF column_name [ ,...n ] ] ]
[;]
²ÎÊý
cursor_name
Ëù¶¨ÒåµÄ Transact-SQL ·þÎñÆ÷ÓαêµÄÃû³Æ¡£cursor_name ±ØÐë·ûºÏ±êʶ·û¹æÔò¡£Óйرêʶ·û¹æÔòµÄÏêϸÐÅÏ¢£¬Çë²ÎÔÄʹÓñêʶ·û×÷Ϊ¶ÔÏóÃû³Æ¡£
INSENSITIVE
¶¨ÒåÒ»¸öÓα꣬ÒÔ´´½¨½«ÓɸÃÓαêʹÓõÄÊý¾ÝµÄÁÙʱ¸´±¾¡£¶ÔÓαêµÄËùÓÐÇëÇó¶¼´Ó tempdb ÖеÄÕâÒ»ÁÙʱ±íÖеõ½Ó¦´ð£»Òò´Ë£¬ÔÚ¶Ô¸ÃÓÎ±ê½øÐÐÌáÈ¡²Ù×÷ʱ·µ»ØµÄÊý¾ÝÖв»·´Ó³¶Ô»ù±íËù×öµÄÐ޸쬲¢ÇÒ¸ÃÓα겻ÔÊÐíÐ޸ġ£Ê¹Óà SQL-92 Ó﷨ʱ£¬Èç¹ûÊ¡ÂÔ INSENSITIVE£¬ÔòÒÑÌá½»µÄ£¨ÈκÎÓû§£©¶Ô»ù´¡±íµÄɾ³ýºÍ¸üж¼·´Ó³ÔÚºóÃæµÄÌáÈ¡ÖС£
SCROLL
Ö¸¶¨ËùÓеÄÌáȡѡÏFIRST¡¢LAST¡¢PRIOR¡¢NEXT¡¢RELATIVE¡¢ABSOLUTE£©¾ù¿ÉÓá£Èç¹ûδÔÚ SQL-92 DECLARE CURSOR ÖÐÖ¸¶¨ SCROLL£¬Ôò NEXT ÊÇΨһ֧³ÖµÄÌáȡѡÏî¡£Èç¹ûÒ²Ö¸¶¨ÁË FAST_FORWARD£¬Ôò²»ÄÜÖ¸¶¨ SCROLL¡£
select_statement
¶¨ÒåÓαê½á¹û¼¯µÄ±ê×¼ SELECT Óï¾ä¡£ÔÚÓαêÉùÃ÷µÄ select_statement ÄÚ²»ÔÊÐíʹÓùؼü×Ö COM
Ïà¹ØÎĵµ£º
SQLµÄÓÅ»¯Ó¦¸Ã´Ó5¸ö·½Ãæ½øÐе÷Õû£º
1.È¥µô²»±ØÒªµÄ´óÐͱíµÄÈ«±íɨÃè
2.»º´æÐ¡ÐͱíµÄÈ«±íɨÃè
3.¼ìÑéÓÅ»¯Ë÷ÒýµÄʹÓÃ
4.¼ìÑéÓÅ»¯µÄÁ¬½Ó¼¼Êõ
5.¾¡¿ÉÄܼõÉÙÖ´Ðмƻ®µÄCost
SQLÓï¾ä£º
ÊǶÔÊý¾Ý¿â(Êý¾Ý)½øÐвÙ×÷µÄΩһ;¾¶£»
ÏûºÄÁË70%~90%µÄÊý¾Ý¿â×ÊÔ´£»¶ÀÁ¢ÓÚ³ÌÐòÉè¼ÆÂß¼£¬Ïà¶ÔÓÚ¶Ô³ÌÐòÔ´´úÂëµÄÓÅ»¯£¬¶ÔSQLÓï¾äµÄÓÅ» ......
ÔÚGoogleÉÏʹÓÓsql ·ÖÒ³”¹Ø¼ü×Ö½øÐÐËÑË÷£¬¼¸ºõËùÓеĴ𰸶¼ÊÇÄÇÈýÌõ¡£Æä¶þЧÂÊ×î¸ß£¬ÆäÈýʹÓÃÓα꣬ЧÂÊ×î²î¡£
ÏÂÃæÊÇÄÇÈýÖÖ·½·¨ £¨²åÈë´úÂëûÓÐsqlÑ¡Ï
·½·¨1£º
ÊÊÓÃÓÚ SQL Server 2000/2005
SELECT TOP Ò³´óС *
from table1
WHERE ......
1.Çå¿ÕÈÕÖ¾
DUMP TRANSACTION ¿âÃû WITH NO_LOG
2.½Ø¶ÏÊÂÎñÈÕÖ¾£º
BACKUP LOG Êý¾Ý¿âÃû WITH NO_LOG
......
1¡¢ÔÚÁíһ̨»úÆ÷ÉϽ¨Á¢¶ÀÁ¢µÄÊý¾Ý¿â·þÎñÆ÷£¬×÷ΪÁ´½ÓÄ¿±ê
2¡¢±¾µØÊý¾Ý¿â·þÎñÆ÷ÉÏÌí¼Ó“Á´½Ó·þÎñÆ÷”£º
Ãû×Ö£ºËæ±ãȡһ¸öÃû×Ö
·þÎñÆ÷ÀàÐÍ£ºÑ¡ÔñÊý¾ÝÔ´£ºMicrosoft OLE DB Provider for SQL Server
Êý¾ÝÔ´£ºÐ´±ðÃû£¨ÔÚ¿Í»§¶ËÍøÂçʵÓù¤¾ßÖÐÉèÖã©
Ñ¡ÖÐRPCºÍRPCÊä³ö ......
±äÁ¿ÉùÃ÷
Syntax:
identifier [CONSTANT] datatype [NOT NULL] [:= | DEFAULT expr];
SQL> declare
2 a date;
3 b number(20) not null :=100;
4 c varchar2(10);
5 d constant number(20) default 1000;
6 begin
7 null;
8 end;
9 /
PL/SQL procedure successful ......