SQL±í±äÁ¿ÓëÁÙʱ±íÇø±ð + ·ÇÓαêÁÙʱ±í±éÀú
ÎÊÌâ 1£ºÎªÊ²Ã´ÔÚÒѾÓÐÁËÁÙʱ±íµÄÇé¿öÏ»¹ÒªÒýÈë±í±äÁ¿£¿
½â´ð 1£ºÓëÁÙʱ±íÏà±È£¬±í±äÁ¿¾ßÓÐÏÂÁÐÓŵ㣺
Èç SQL Server Áª»ú´ÔÊ铱í”(Table) Ò»ÎÄÖÐËùÊö£¬±í±äÁ¿£¨Èç¾Ö²¿±äÁ¿£©¾ßÓÐÃ÷È·¶¨ÒåµÄ·¶Î§£¬Ôڸ÷¶Î§½áÊøÊ±»á×Ô¶¯Çå³ýÕâЩ±í±äÁ¿¡£
ÓëÁÙʱ±íÏà±È£¬±í±äÁ¿µ¼Ö´洢¹ý³ÌµÄÖØÐ±àÒë¸üÉÙ¡£
Éæ¼°±í±äÁ¿µÄÊÂÎñ½öά³Ö±í±äÁ¿ÉϸüеijÖÐøÊ±¼ä¡£Òò´Ë£¬Ê¹Óñí±äÁ¿Ê±£¬ÐèÒªËø¶¨ºÍ¼Ç¼×ÊÔ´µÄÇé¿ö¸üÉÙ¡£ÒòΪ±í±äÁ¿¾ßÓÐÓÐÏ޵ķ¶Î§²¢ÇÒ²»Êdz־ÃÐÔÊý¾Ý¿âµÄÒ»²¿·Ö£¬ËùÒÔÊÂÎñ»Ø¹ö²¢²»Ó°ÏìËüÃÇ¡£
ÎÊÌâ 2£ºÈç¹û˵ʹÓñí±äÁ¿±ÈʹÓÃÁÙʱ±íµ¼Ö´洢¹ý³ÌµÄÖØÐ±àÒë¸üÉÙ£¬ÕâÒâζ×Åʲô£¿
½â´ð 2£ºÏÂÃæµÄÎÄÕÂÌÖÂÛÁËÖØÐ±àÒë´æ´¢¹ý³ÌµÄһЩÔÒò£º
243586 (http://support.microsoft.com/kb/243586/ ) ´æ´¢¹ý³ÌÖØÐ±àÒëµÄÒÉÄѽâ´ð
“ÓÉÓÚijЩÁÙʱ±í²Ù×÷ÒýÆðµÄÖØÐ±àÒë”Ò»½Ú»¹ÁгöÁËΪ±ÜÃâһЩÎÊÌ⣨ÀýÈçʹÓÃÁÙʱ±íµ¼ÖÂÖØÐ±àÒ룩¶øÐèÒªÂú×ãµÄһЩҪÇó¡£ÕâЩÏÞÖÆ²»ÊÊÓÃÓÚ±í±äÁ¿¡£
±í±äÁ¿ÍêÈ«¶ÀÁ¢ÓÚ´´½¨ÕâЩ±í±äÁ¿µÄÅú£¬Òò´Ë£¬µ±Ö´ÐÐ CREATE »ò ALTER Óï¾äʱ£¬²»»á·¢Éú“ÖØÐ½âÎö”£¬¶øÔÚʹÓÃÁÙʱ±íʱ¿ÉÄܻᷢÉú“ÖØÐ½âÎö”¡£ÁÙʱ±íÐèÒª´Ë“ÖØÐ½âÎö”£¬ÒÔ±ã´ÓǶÌ×´æ´¢¹ý³ÌÒýÓÃ¸Ã±í¡£±í±äÁ¿ÍêÈ«±ÜÃâÁË´ËÎÊÌ⣬Òò´Ë´æ´¢¹ý³Ì¿ÉÒÔʹÓÃÒѱàÒëµÄ¼Æ»®£¬´Ó¶ø½ÚÊ¡ÁË´¦Àí´æ´¢¹ý³ÌµÄ×ÊÔ´¡£
ÎÊÌâ 3£º±í±äÁ¿ÓÐÄÄЩȱÏÝ£¿
½â´ð 3£ºÓëÁÙʱ±íÏà±È£¬Ëü´æÔÚÏÂÁÐȱÏÝ£º
ÔÚ±í±äÁ¿Éϲ»ÄÜ´´½¨·Ç¾Û¼¯Ë÷Òý£¨Îª PRIMARY »ò UNIQUE Ô¼Êø´´½¨µÄϵͳË÷Òý³ýÍ⣩¡£Óë¾ßÓзǾۼ¯Ë÷ÒýµÄÁÙʱ±íÏà±È£¬Õâ¿ÉÄÜ»áÓ°Ïì²éѯÐÔÄÜ¡£
±í±äÁ¿²»ÏñÁÙʱ±íÄÇÑù¿ÉÒÔά»¤Í³¼ÆÐÅÏ¢¡£ÔÚ±í±äÁ¿ÉÏ£¬²»ÄÜͨ¹ý×Ô¶¯´´½¨»òʹÓà CREATE STATISTICS Óï¾äÀ´´´½¨Í³¼ÆÐÅÏ¢¡£Òò´Ë£¬ÔÚ´ó±íÉϽøÐи´ÔÓ²éѯʱ£¬È±ÉÙͳ¼ÆÐÅÏ¢¿ÉÄÜ»á·Á°ÓÅ»¯Æ÷È·¶¨²éѯµÄ×î¼Ñ¼Æ»®£¬´Ó¶øÓ°Ïì¸Ã²éѯµÄÐÔÄÜ¡£
ÔÚ³õʼ DECLARE Óï¾äºó²»Äܸü¸Ä±í¶¨Òå¡£
±í±äÁ¿²»ÄÜÔÚ INSERT EXEC (µ«¾±¾È˲âÊÔÔÚsql2005¿ÉÒÔʹÓÃinsert vartable exec)»ò SELECT INTO Óï¾äÖÐʹÓá£
±íÀàÐÍÉùÃ÷Öеļì²éÔ¼Êø¡¢Ä¬ÈÏÖµÒÔ¼°¼ÆËãËùµÃµÄÁв»Äܵ÷ÓÃÓû§¶¨ÒåµÄº¯Êý¡£
Èç¹û±í±äÁ¿ÊÇÔÚ EXEC Óï¾ä»ò sp_executesql ´æ´¢¹ý³ÌÍâ´´½¨µÄ£¬Ôò²»ÄÜʹÓà EXEC Óï¾ä»ò sp_executesql ´æ´¢¹ý³ÌÀ´ÔËÐÐÒýÓøñí±äÁ¿µÄ¶¯Ì¬ SQL Server ²éѯ¡£ÓÉÓÚ±í±äÁ¿Ö»ÄÜÔÚËüÃǵı¾µØ×÷ÓÃÓòÖÐÒýÓã¬Òò´Ë EXEC Óï¾äºÍ sp_executesql ´æ´
Ïà¹ØÎĵµ£º
create PROCEDURE pagelist
@tablename nvarchar(50),
@fieldname nvarchar(50)='*',
@pagesize int output,--ÿҳÏÔʾ¼Ç¼ÌõÊý
@currentpage int output,--µÚ¼¸Ò³
@orderid nvarchar(50),--Ö÷¼üÅÅÐò
@sort int,--ÅÅÐò·½Ê½£¬1±íʾÉýÐò£¬0±íʾ½µÐòÅÅÁÐ
......
¡¡¡¡º¯ÊýÊÇÒ»ÖÖÓÐÁã¸ö»ò¶à¸ö²ÎÊý²¢ÇÒÓÐÒ»¸ö·µ»ØÖµµÄ³ÌÐò¡£ÔÚSQLÖÐOracleÄÚ½¨ÁËһϵÁк¯Êý£¬ÕâЩº¯Êý¶¼¿É±»³ÆÎªSQL»òPL/SQLÓï¾ä£¬º¯ÊýÖ÷Òª·ÖΪÁ½´óÀࣺ
¡¡¡¡ µ¥Ðк¯Êý
¡¡¡¡ ×麯Êý
¡¡¡¡±¾ÎĽ«ÌÖÂÛÈçºÎÀûÓõ¥Ðк¯ÊýÒÔ¼°Ê¹ÓùæÔò¡£
¡¡¡¡SQLÖеĵ¥Ðк¯Êý
¡¡¡¡SQLºÍPL/SQLÖÐ×Ô´øºÜ¶àÀàÐ͵ĺ¯Êý£¬ÓÐ×Ö·û¡¢Êý×Ö¡¢ÈÕÆÚ¡ ......
ÏÂÃæµÄÕâЩ½Å±¾¶¼¿ÉÒÔÕÒµ½ÒýÆð´ÅÅÌÅÅÐòµÄSQL¡£
SELECT /*+ rule */ DISTINCT a.SID, a.process, a.serial#,
TO_CHAR (a.logon_time, 'YYYYMMDD HH24:MI:SS') LOGON, a.osuser,TABLESPACE, b.sql_text
from v$session a, v$sql b, v$sort_usage c
WHERE a.sql_address = b.address AND a.saddr = c.session_addr;
......
1¡¢ SQL×¢Èë¹¥»÷µÄ±¾ÖÊ£ºÈÿͻ§¶Ë´«µÝ¹ýÈ¥µÄ×Ö·û´®±ä³ÉSQLÓï¾ä£¬¶øÇÒÄܹ»±»Ö´ÐС£
2¡¢ ÿ¸ö³ÌÐòÔ±¶¼±ØÐë¼ç¸ºÆð·ÀÖ¹SQL×¢Èë¹¥»÷µÄÔðÈΡ£
¡¡¡¡ËµÆð·ÀÖ¹SQL×¢Èë¹¥»÷£¬¸Ð¾õºÜÓôÃÆ£¬Õâô¶àÄêÁË´ó¼ÒÒ»Ö±ÔÚÌÖÂÛ£¬Ò²Ò»Ö±ÔÚÕùÂÛ£¬¿ÉÊǵ½ÁËÏÖÔÚËÆºõ»¹ÊÇûÓж¨ÂÛ¡£µ±²»ÖªµÀ×¢ÈëÔÀíµÄʱºò»á¾õµÃºÜÉñÆæ£¬Ôõô¾Í±»×¢ÈëÁËÄØ£¿ ......
select * from formtable_main_20
sp_help formtable_main_20
--drop view zcountQJ01
create view zcountQJ01
as
select appman ,year(startdata) as zyear,jb,cast(sum(num) as decimal(4,1) ) as num
from formtable_main_20
where year(getdate()) = year(startdata)
group by appman,jb,year(startdata) ......