SQL ServerÐÔÄܵĸĽøµÃÒæÓÚÂß¼Êý¾Ý¿âÉè¼Æ (ת)
¡ô1¡¢Ê¹ÓÃË÷ÒýÀ´¸ü¿ìµØ±éÀú±í
ȱʡÇé¿öϽ¨Á¢µÄË÷ÒýÊÇ·ÇȺ¼¯Ë÷Òý£¬µ«ÓÐʱËü²¢²»ÊÇ×î¼ÑµÄ¡£ÔÚ·ÇȺ¼¯Ë÷ÒýÏ£¬Êý¾ÝÔÚÎïÀíÉÏËæ»ú´æ·ÅÔÚÊý¾ÝÒ³ÉÏ¡£ºÏÀíµÄË÷ÒýÉè¼ÆÒª½¨Á¢ÔÚ¶Ô¸÷ÖÖ²éѯµÄ·ÖÎöºÍÔ¤²âÉÏ¡£Ò»°ãÀ´Ëµ£º¢Ù.ÓдóÁ¿Öظ´Öµ¡¢ÇÒ¾³£Óз¶Î§²éѯ£¨between, > ,< £¬> =,< =£©ºÍorder by¡¢group by·¢ÉúµÄÁУ¬¿É¿¼Âǽ¨Á¢Èº¼¯Ë÷Òý£»¢Ú.¾³£Í¬Ê±´æÈ¡¶àÁУ¬ÇÒÿÁж¼º¬ÓÐÖØ¸´Öµ¿É¿¼Âǽ¨Á¢×éºÏË÷Òý£»¢Û.×éºÏË÷ÒýÒª¾¡Á¿Ê¹¹Ø¼ü²éѯÐγÉË÷Òý¸²¸Ç£¬Æäǰµ¼ÁÐÒ»¶¨ÊÇʹÓÃ×îÆµ·±µÄÁС£Ë÷ÒýËäÓÐÖúÓÚÌá¸ßÐÔÄܵ«²»ÊÇË÷ÒýÔ½¶àÔ½ºÃ£¬Ç¡ºÃÏà·´¹ý¶àµÄË÷Òý»áµ¼ÖÂϵͳµÍЧ¡£Óû§ÔÚ±íÖÐÿ¼Ó½øÒ»¸öË÷Òý£¬Î¬»¤Ë÷Òý¼¯ºÏ¾ÍÒª×öÏàÓ¦µÄ¸üй¤×÷¡£
¡ô2¡¢IS NULL Óë IS NOT NULL
²»ÄÜÓÃnull×÷Ë÷Òý£¬Èκΰüº¬nullÖµµÄÁж¼½«²»»á±»°üº¬ÔÚË÷ÒýÖС£¼´Ê¹Ë÷ÒýÓжàÁÐÕâÑùµÄÇé¿öÏ£¬Ö»ÒªÕâЩÁÐÖÐÓÐÒ»Áк¬ÓÐnull£¬¸ÃÁоͻá´ÓË÷ÒýÖÐÅųý¡£Ò²¾ÍÊÇ˵Èç¹ûijÁдæÔÚ¿ÕÖµ£¬¼´Ê¹¶Ô¸ÃÁн¨Ë÷ÒýÒ²²»»áÌá¸ßÐÔÄÜ¡£ÈκÎÔÚwhere×Ó¾äÖÐʹÓÃis null»òis not nullµÄÓï¾äÓÅ»¯Æ÷ÊDz»ÔÊÐíʹÓÃË÷ÒýµÄ¡£
¡ô3¡¢INºÍEXISTS
EXISTSÒªÔ¶±ÈINµÄЧÂʸߡ£ÀïÃæ¹ØÏµµ½full table scanºÍrange scan¡£¼¸ºõ½«ËùÓеÄIN²Ù×÷·û×Ó²éѯ¸ÄдΪʹÓÃEXISTSµÄ×Ó²éѯ¡£
¡ô4¡¢ÔÚº£Á¿²éѯʱ¾¡Á¿ÉÙÓøñʽת»»¡£
¡ô5¡¢µ±ÔÚSQL SERVER 2000ÖУ¬Èç¹û´æ´¢¹ý³ÌÖ»ÓÐÒ»¸ö²ÎÊý£¬²¢ÇÒÊÇOUTPUTÀàÐ͵쬱ØÐëÔÚµ÷ÓÃÕâ¸ö´æ´¢¹ý³ÌµÄʱºò¸øÕâ¸ö²ÎÊýÒ»¸ö³õʼµÄÖµ£¬·ñÔò»á³öÏÖµ÷ÓôíÎó¡£
¡ô6¡¢ORDER BYºÍGROPU BY
ʹÓÃORDER BYºÍGROUP BY¶ÌÓÈκÎÒ»ÖÖË÷Òý¶¼ÓÐÖúÓÚSELECTµÄÐÔÄÜÌá¸ß¡£×¢ÒâÈç¹ûË÷ÒýÁÐÀïÃæÓÐNULLÖµ£¬Optimizer½«ÎÞ·¨ÓÅ»¯¡£
¡ô7¡¢ÈκζÔÁеIJÙ×÷¶¼½«µ¼Ö±íɨÃ裬Ëü°üÀ¨Êý¾Ý¿âº¯Êý¡¢¼ÆËã±í´ïʽµÈµÈ£¬²éѯʱҪ¾¡¿ÉÄܽ«²Ù×÷ÒÆÖÁµÈºÅÓұߡ£
¡ô8¡¢IN¡¢OR×Ӿ䳣»áʹÓù¤×÷±í£¬Ê¹Ë÷ÒýʧЧ¡£Èç¹û²»²úÉú´óÁ¿Öظ´Öµ£¬¿ÉÒÔ¿¼ÂǰÑ×Ó¾ä²ð¿ª¡£²ð¿ªµÄ×Ó¾äÖÐÓ¦¸Ã°üº¬Ë÷Òý¡£
¡ô9¡¢SET SHOWPLAN_ALL ON ²é¿´Ö´Ðз½°¸¡£DBCC¼ì²éÊý¾Ý¿âÊý¾ÝÍêÕûÐÔ¡£
DBCC(DataBase Consistency Checker£©ÊÇÒ»×éÓÃÓÚÑéÖ¤ SQL Server Êý¾Ý¿âÍêÕûÐԵijÌÐò¡£
¡ô10¡¢É÷ÓÃÓαê
ÔÚijЩ±ØÐëʹÓÃÓαêµÄ³¡ºÏ£¬¿É¿¼Âǽ«·ûºÏÌõ¼þµÄÊý¾ÝÐÐתÈëÁÙʱ±íÖУ¬ÔÙ¶ÔÁÙʱ±í¶¨ÒåÓÎ±ê½øÐвÙ×÷£¬ÕâÑù¿ÉʹÐÔÄܵõ½Ã÷ÏÔÌá¸ß¡£
ÓÅ»¯Êý¾Ý¿âµÄ
Ïà¹ØÎĵµ£º
¡¡¡¡×ܵÄÀ´Ëµ£¬MS SQL 2005µÄ°²È«ÐÔ±ÈSQL 2000ҪǿÉϲ»ÉÙ£¬²»¹ýĬÈÏÉèÖû¹ÊÇÓкÍÔÀ´Ò»ÑùµÄ©¶´£¬ÏÂÃæÎÒÃÇÀ´ÐÞ¸ÄÒ»ÏÂĬÈÏÉèÖá£
¡¡¡¡1¡¢ÐÞ¸ÄĬÈÏ£Ó£ÁÃÜÂë¡£
¡¡¡¡°²×°MSSQLʱʹÓûìºÏģʽ£¬µ±È»SAÃÜÂë×îºÃ²»ÄÜΪ¿Õ£¬ÔÚSQL2005ÖУ¬¿ÉÒÔ¶ÔSAÕâ¸ö³¬¼¶Óû§Ãû½øÐÐÐ޸Ļòɾ³ý¡£
use master
ALTER LOGIN [ ......
µÚÒ»ÖÖ·½·¨: ʹÓÃoutput²ÎÊý
USE AdventureWorks;
GO
IF OBJECT_ID ( 'Production.usp_GetList', 'P' ) IS NOT NULL
DROP PROCEDURE Production.usp_GetList;
GO
CREATE PROCEDURE Production.usp_GetList @product varchar(40)
, @maxprice money
, ......
ÔÚµ÷Ó÷þÎñÆ÷ºóÒª¼ÌÐøÔÚ·þÎñÆ÷Öб£ÁôÊý¾Ýͨ³£ºÜÄÑ£¬Äã¿ÉÒÔÓÃSQL ServerÀ´½øÐлỰ״̬¹ÜÀí(Óû§»á»°Êý¾Ý)¡£ÒÔϽÌÄãÔõÑùÓÃËüÀ´½øÐйÜÀí¡£
¡¡¡¡ÔÚÒ³Ãæ¿ª·¢ÖУ¬ÔÚ·þÎñÆ÷µ÷ÓÃÀï±£ÁôÊý¾ÝÊÇÒ»¸ö³£¼ûµÄ²»ºÃ½â¾öµÄÄÑÌâ¡£ÄãÒ²ÐíÐèҪΪÄãµÄÓ¦ÓóÌÐò»òÌØÊâÓû§µÄ»á»°±£´æÐÅÏ¢¡£´æ´¢ÕâÑùµÄÊý¾Ý±»³ÆÎª×´Ì¬¹ÜÀí£¬ASP.NETΪÄãÌṩ ......
1.°´ÐÕÊϱʻÅÅÐò:
Select * from TableName Order By CustomerName Collate Chinese_PRC_Stroke_ci_as
2.·ÖÒ³SQLÓï¾ä
select * from(select (row_number() OVER (ORDER BY tab.ID Desc)) as rownum,tab.* from ±íÃû As tab) As t where rownum between ÆðʼλÖà And ½áÊøÎ»ÖÃ
3.»ñÈ¡µ±Ç°Êý¾Ý¿âÖеÄËùÓÐÓû§± ......
DECLARE @dt datetime
SET @dt=GETDATE()
DECLARE @number int
SET @number=3
--1£®Ö¸¶¨ÈÕÆÚ¸ÃÄêµÄµÚÒ»Ìì»ò×îºóÒ»Ìì
--A. ÄêµÄµÚÒ»Ìì
SELECT CONVERT(char(5),@dt,120)+'1-1'
--B. ÄêµÄ×îºóÒ»Ìì
SELECT CONVERT(char(5),@dt,120)+'12-31'
--2£®Ö¸¶¨ÈÕÆÚËùÔÚ¼¾¶ÈµÄµÚÒ»Ìì»ò×îºóÒ»Ìì
--A. ¼¾¶ÈµÄµÚÒ»Ìì
SELECT CON ......