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Ö®ºó¿ÉÒԺܷ½±ãµÄ½â¾ö
Ïà¹ØÎĵµ£º
PairWise subquery:
e.g.:
select * from wf_docsort where (ndocsortid,nmoduleinfoid) in (select ndocsortid, nmoduleinfoid from wf_docsort where instr(cname,'ÎÄ')>0)
the above sql is the same function as:
select * from wf_docsort where ndocsortid = (select ndocsortid from wf_docsort where ......
ͨÅä·û_
"_"ºÅ±íʾÈÎÒâµ¥¸ö×Ö·û,¸Ã·ûºÅÖ»ÄÜÆ¥ÅäÒ»¸ö×Ö·û."_"¿ÉÒÔ·ÅÔÚ²éѯÌõ¼þµÄÈÎÒâλÖÃ,ÇÒÖ»ÄÜ´ú±íÒ»¸ö×Ö·û.Ò»¸öºº×ÖֻʹÓÃÒ»¸ö"_"±íʾ.
Àý×Ó£º
if PATINDEX('%[ß¹-×ö]%','ÐèÒªÅжϵÄ×Ö·û')>0 -- ÅжÏÊÇ·ñÓÐ×Ö·û
print 'Óкº×Ö'
else
print 'ÎÞºº×Ö'
ͨÅä·û%
"%"·ûºÅÊÇ×Ö·ûÆ¥Åä·û,ÄÜÆ¥Åä0¸ö»ò¸ü¶à×Ö·ûµÄÈÎÒⳤ¶ ......
1. SET DEADLOCK_PRIORITY
˵Ã÷£º¿ØÖÆÔÚ·¢ÉúËÀËøÇé¿öʱ»á»°µÄ·´Ó¦·½Ê½¡£Èç¹ûÁ½¸ö½ø³Ì¶¼Ëø¶¨Êý¾Ý£¬²¢ÇÒÖ±µ½ÆäËü½ø³ÌÊÍ·Å×Ô¼ºµÄËøÊ±£¬Ã¿¸ö½ø³Ì²ÅÄÜÊÍ·Å×Ô¼ºµÄËø£¬¼´·¢ÉúËÀËøÇé¿ö¡£
Óï·¨£ºSET DEADLOCK_PRIORITY { LOW | NORMAL | @deadlock_var }
²ÎÊý£ºLOW   ......
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER proc [dbo].[pr_xls_to_tb]
@path varchar(200),--EXCEL·¾¶Ãû
@tbName varchar(30),--±íÃû
@stName varchar(30) --excelÖÐÒª¶ÁµÄSHEETÃû
as
declare @sql varchar(500),--×îºóÒªÖ´ÐеÄSQL
@stName_Real varchar(35),--ÕæÕýµÄSHEETÃû
......