SQL SERVERµÄROWCOUNT¹Ø¼ü×Ö
ÒòΪÑöÍûORACLE£¬ËùÒÔÒ»Ö±¶¼ÒÔΪSQL SERVERºÜ±¿¡£
¾Ý´«SQL 2005ÓÐÁËRowIDµÄ¶«Î÷£¬¿ÉÒÔ½â¾öTOPÅÅÐòµÄÎÊÌâ¡£¿Éϧ»¹Ã»Óлú»áÌåÑé¡£ÔÚSQL 2000ÖÐд´æ´¢¹ý³Ì£¬×Ü»áÓöµ½ÐèÒªTOPµÄµØ·½£¬¶øÒ»µ©Óöµ½TOP£¬ÒòΪû°ì·¨°ÑTOPºóÃæµÄÊý×Ö×÷Ϊ±äÁ¿Ð´µ½Ô¤±àÒëµÄÓï¾äÖÐÈ¥£¬ËùÒÔÖ»Äܹ»Ê¹Óù¹Ôì SQL£¬Ê¹ÓÃExecÀ´Ö´ÐС£²»ËµÐ§ÂʵÄÎÊÌ⣬ÐÄÀïÒ²×ܾõµÃÕâ¸ö°ì·¨ºÜ±¿¡£
ʵ¼ÊÉÏ£¬ÔÚSQL 2000ÖÐÍêÈ«¿ÉÒÔʹÓÃROWCOUNT¹Ø¼ü×Ö½â¾öÕâ¸öÎÊÌâ¡£
ROWCOUNT¹Ø¼ü×ÖµÄÓ÷¨ÔÚÁª»ú°ïÖúÖÐÓбȽÏÏêϸµÄ˵Ã÷£¬Õâ¶ù¾Í²»ÂÞàÂÁË¡£Ì¸Ì¸Ìå»á¡£
1¡¢Ê¹ÓÃROWCOUNT²éѯǰ¼¸Ðнá¹û¡£
DECLARE @n INT
SET @n = 1000
SET ROWCOUNT @n
SELECT * from Table_1
ÕâÑù£¬²éѯ½á¹û½«µÈͬÓÚ
SELECT TOP 100 from Table_1
2¡¢Í¬ÑùµÄµÀÀí£¬Ê¹ÓÃINSERT INTO..SELECTµÄʱºòÒ²ÓÐЧ¡£
DECLARE @n INT
SET @n = 1000
SET ROWCOUNT @n
INSERT INTO Table_2 (colname1)
SELECT colname1=colname2 from Table_1
Ö´ÐеĽá¹û½«µÈͬÓÚ
INSERT INTO Table_2(colname1)
SELECT TOP 1000 colname1 = colname2 from Table_1
3¡¢Ö´ÐÐUPDATEºÍDELETE¡£
ÒòΪUPDATEºÍDELETEÎÞ·¨Ö±½ÓʹÓÃORDER BYÓï·¨£¬Èç¹ûʹÓÃROWCOUNT£¬½«°´ÕÕÖ÷¼ü˳Ðò´ÓǰÍùºó²Ù×÷¡£
DECLARE @n INT
SET @n = 1000
SET ROWCOUNT @n
DELETE from Table_1
²»¹ýÒ²Óнâ¾ö°ì·¨£¬Ö»ÒªÄܹ»Ê¹ÓÃORDER BY¹Ø¼ü×־ͿÉÒÔÁË£¬±ÈÈç˵ֱ½ÓÓú¬ORDER BYµÄ×Ӿ䣬»òÕßÏÈʹÓÃORDER BYÓï·¨°ÑÐèÒª²Ù×÷µÄ±êʶÁдæÎªÒ»¸öÁÙʱ±í»ò±í±äÁ¿£¬È»ºóÔÙ²Ù×÷Óï¾äÖÐʹÓÃIN»òEXISTS¹Ø¼ü×Ö¡£
DECLARE @n INT
SET @n = 1000
SET ROWCOUNT @n
DECLARE @t TABLE(ID INT)
INSERT INTO @t
SELECT ID from Table_1 ORDER BY colname [ASC/DESC]
DELETE from Table_1 WHERE ID IN (SELECT ID from @t)
4¡¢¶ÔÓÚROWCOUNTµÄÉèÖÃÊÇÓëSessionÓйصġ£Èç¹ûÕ¼ÓÃÁËÒ»¸öSession£¬ÄÇô¶ÔÓ¦µÄÕâ¸öÊý¾Ý¿âSession½«Ê¹ÓÃ×î½üÒ»´ÎÉèÖõÄROWCOUNT£¬Ö±µ½Session½áÊø»òÕßÐÞ¸ÄÁËROWCOUNT¡£
5¡¢ÔÚÓû§×Ô¶¨Ò庯ÊýÖв»ÄÜʹÓÃROWCOUNT¡£
6¡¢È¡ÏûROWCOUNT¡£
ÎÒ²»ÖªµÀΪʲôÔÚÁª»ú°ïÖúÖÐ˵£¬Ð´´æ´¢¹ý³ÌµÄʱºòÓ¦¸Ã×¢Ò⾡Á¿±ÜÃâʹÓÃROWCOUNT£¬¶ø½¨ÒéʹÓÃTOP¡£ÄѵÀMS²»ÖªµÀTOP¹Ø¼üºóÃæµÄÊý×Ö²»ÄÜΪ±äÁ¿Âð£¿Ò²ÐíMSÊdzöÓÚµ£ÐÄ¿ª·¢ÕßÍü¼ÇÁËÈ¡ÏûROWCOUNT¶øÓ°ÏìÕý³£µÄʵÏÖ¡£
ʹÓÃÕâÑùµÄÓï¾ä¼´¿ÉÈ¡ÏûROWCOUNTÁË¡£
SET ROWCOUNT 0
8¡¢×ܽá
ʹÓÃROWCOUNTÖ®ºó¿ÉÒԺܷ½±ãµÄ½â¾ö
Ïà¹ØÎĵµ£º
(×¢:outerµÄÒâ˼¾ÍÊÇ"ûÓйØÁªÉϵÄÐÐ"¡£)
1.cross join È«ÍâÁ¬½Ó(µÑ¿¨¶û³Ë»ý)
SELECT A.*, B.* from A FULL OUTER JOIN B ON A.ID = B.ID
2.inner join ÄÚÁ¬½Ó(Ôڵѿ¨¶û³Ë»ýµÄ½á¹û¼¯ÖÐÈ¥µô²»·ûºÏÁ¬½ÓÌõ¼þµÄÐÐ)
SELECT A.* from A INNER JOIN B ON A.ID=B.ID
3.left outer join ×óÍâÁ¬½Ó(ÔÚinner joinµÄ½á¹ ......
--> Title : SQL ServerϵͳÊÓͼ
--> Author : wufeng4552
--> Date : 2009-10-28
Ŀ¼ÊÓͼ
Ŀ¼ÊÓͼ·µ»Ø SQL Server Êý¾Ý¿âÒýÇæÊ¹ÓõÄÐÅÏ¢¡£½¨ÒéÄúʹÓÃĿ¼ÊÓͼÕâÒ»×î³£ÓõÄĿ¼ԪÊý¾Ý½çÃæ£¬Ëü¿ÉΪÄúÌṩ×îÓÐЧµÄ·½·¨À´»ñÈ¡¡¢×ª»»²¢ÏÔʾ´ËÐÅÏ¢µÄ×Ô¶¨ÒåÐÎʽ¡£ËùÓÐÓû§¿ÉÓÃĿ¼Ԫ ......
1. SET DEADLOCK_PRIORITY
˵Ã÷£º¿ØÖÆÔÚ·¢ÉúËÀËøÇé¿öʱ»á»°µÄ·´Ó¦·½Ê½¡£Èç¹ûÁ½¸ö½ø³Ì¶¼Ëø¶¨Êý¾Ý£¬²¢ÇÒÖ±µ½ÆäËü½ø³ÌÊÍ·Å×Ô¼ºµÄËøÊ±£¬Ã¿¸ö½ø³Ì²ÅÄÜÊÍ·Å×Ô¼ºµÄËø£¬¼´·¢ÉúËÀËøÇé¿ö¡£
Óï·¨£ºSET DEADLOCK_PRIORITY { LOW | NORMAL | @deadlock_var }
²ÎÊý£ºLOW   ......
ÔÚʹÓÃSQL*PlusÉú³É±¨¸æÎļþµÄʱºò£¬ÍùÍù»áÒòΪÆäĬÈϵÄÉèÖõ¼ÖÂÊä³öµÄ½á¹û·Ç³£µÄûÓпɶÁÐÔ£¬ÏÂÃæ½éÉÜÒ»¸öÈÕ³£ÖлᱻÓõ½µÄÒ»¸ö½Å±¾£¬ÆäÖаüº¬Ò»Ð©¸ñʽ»¯
Êä³öµÄsetÃüÁî
£¬ÎªÁË·½±ãÀí½â£¬ÎÒ»áÔÚÿһÌõsetÃüÁîÖ®ºó½ô¸ú×ÅÒ»¸ö¼òµ¥µÄ½âÊÍ£¬ÇëÂýÂýÌå»á¡£
sqlplus -s user_name/user_password << EOF >/dev/n ......
1 :ÆÕͨSQLÓï¾ä¿ÉÒÔÓÃexecÖ´ÐÐ
Select * from tableName
exec('select * from tableName')
exec sp_executesql N'select * from tableName' -- Çë×¢Òâ×Ö·û´®Ç°Ò»¶¨Òª¼ÓN
2:×Ö¶ÎÃû£¬±íÃû£¬Êý¾Ý¿âÃûÖ®Àà×÷Ϊ±äÁ¿Ê±£¬±ØÐëÓö¯Ì¬SQL
declare @fname varchar(20)
set @fname = 'FiledName'
Select @fname fr ......