SQL Server Óû§¶¨ÒåµÄº¯Êý
·¢²¼ÈÕÆÚ : 1/14/2005 | ¸üÐÂÈÕÆÚ : 1/14/2005
John Papa
Óû§¶¨ÒåµÄº¯Êý (UDF) ÊÇ×¼±¸ºÃµÄ´úÂëÆ¬¶Î£¬Ëü¿ÉÒÔ½ÓÊܲÎÊý£¬´¦ÀíÂß¼£¬È»ºó·µ»ØÄ³Ð©Êý¾Ý¡£¸ù¾Ý SQL Server Books Online£¬SQL Server™ 2000 ÖÐµÄ UDF ¿ÉÒÔ½ÓÊÜ´Ó 0 µ½ 1024 µÄÈÎÒâ¸öÊýµÄ²ÎÊý£¬²»¹ýÎÒ±ØÐë³ÐÈÏ£¬ÎÒ»¹Î´³¢ÊÔ½« 1024 ¸ö²ÎÊý´«µÝµ½ UDF ÖС£UDF µÄÁíÒ»¸ö¹Ø¼üÌØÕ÷ÊÇ·µ»ØÒ»¸öÖµ¡£È¡¾öÓÚ UDF µÄÀàÐÍ£¬µ÷ÓÃÀý³Ì¿ÉÒÔʹÓÃÕâ¸öÖµÀ´¼ÌÐø´¦ÀíËüµÄÊý¾Ý¡£Òò´Ë£¬Èç¹û UDF ·µ»Øµ¥Ò»Öµ£¨±êÁ¿Öµ£©£¬µ÷ÓÃÀý³Ì¾Í¿ÉÒÔÔÚÈκÎÄܹ»Ê¹Óñê×¼±äÁ¿»òÎÄ×ÖÖµµÄµØ·½Ê¹ÓÃÕâ¸öÖµ¡£Èç¹û UDF ·µ»ØÒ»¸öÐм¯£¬Ôòµ÷ÓÃÀý³Ì¿ÉÒÔÑ»··ÃÎʸÃÐм¯£¬Áª½Óµ½¸ÃÐм¯£¬»ò¼òµ¥µØ´Ó¸ÃÐм¯ÖÐÑ¡ÔñÁС£
ËäÈ»ÏÖÔÚ´ó¶àÊý±à³ÌÓïÑÔÒѾÔÝʱ֧³Öº¯Êý£¬µ«Ö»ÓÐ SQL Server 2000 ÒýÈëÁË UDF¡£´æ´¢¹ý³ÌºÍÊÓͼÔÚ SQL Server ÖпÉÓõÄʱ¼äÔ¶ÔçÓÚ UDF£¬µ«ÕâЩ¶ÔÏóÖеÄÿһ¸öÔÚ SQL Server ¿ª·¢Öж¼ÓÐ×Ô¼ºÊʵ±µÄλÖᣴ洢¹ý³Ì¿ÉÒԺܺõØÓÃÓÚ´¦Àí¸´Ô SQL Âß¼¡¢±£Ö¤ºÍ¿ØÖƶÔÊý¾ÝµÄ·ÃÎÊ£¬ÒÔ¼°½«Ðм¯·µ»Øµ½µ÷ÓÃÀý³Ì£¬ÎÞÂÛ´ËÀý³ÌÊÇ»ùÓÚ Visual Basic® µÄ³ÌÐò£¬»¹ÊÇÁíÒ»¸ö Transact-SQL (T-SQL) Åú´¦ÀíÎļþ¡£ÓëÊÓͼ²»Í¬£¬´æ´¢¹ý³ÌÊÇÒѱàÒëµÄ£¬ÕâʹµÃËüÃdzÉΪÓÃÀ´±íʾºÍ´¦ÀíÆµ·±ÔËÐÐµÄ SQL Óï¾äµÄÀíÏëºòÑ¡Õß¡£ÊÓͼ¿ÉÒԺܺõØÓÃÓÚ¿ØÖƶÔÊý¾ÝµÄ·ÃÎÊ£¬µ«ËüÃǵĿØÖÆ·½Ê½Óë´æ´¢¹ý³Ì²»Í¬¡£ÊÓͼ½öÏÞÓÚÉú³É¸ÃÊÓͼµÄ»ù´¡ SELECT Óï¾äÖеÄijЩÁкÍÐС£Òò¶øÊÓͼ³£ÓÃÓÚ±íʾ³£ÓÃµÄ SELECT Óï¾ä£¬¸ÃÓï¾ä¿ÉÒÔÁª½Ó¶à¸ö±í¡¢Ê¹Óà WHERE ×Ӿ䣬ÒÔ¼°¹«¿ªÌض¨µÄÁС£ÔÚÁª½Óµ½ÆäËû±íºÍÊÓͼµÄ SQL Óï¾äµÄ from ×Ó¾äÖо³£»á·¢ÏÖÊÓͼ¡£
ÔÚÆäºËÐIJ¿·Ö£¬UDF ¼ÈÀàËÆÓÚÊÓͼ£¬Ò²ÀàËÆÓÚ´æ´¢¹ý³Ì¡£ÏñÊÓͼһÑù£¬UDF ¿ÉÒÔ·µ»ØÒ»¸öÐм¯£¬¸ÃÐм¯¿ÉÓÃÓÚ JOIN ÖС£Òò´Ë£¬µ± UDF ·µ»ØÒ»¸öÐм¯²¢½ÓÊܲÎÊýʱ£¬ËüÏñÒ»¸öÄú¿ÉÒÔÁª½Óµ½µÄ´æ´¢¹ý³Ì¡¢»òÕßÒ»¸ö²ÎÊý»¯µÄÊÓͼ¡£µ«ÊÇ£¬ÕýÈçÎÒ½«ÑÝʾµÄ£¬UDF ¿ÉÒÔ×öµ½ÕâÒ»µã£¬ÉõÖÁ¸ü¶à¡£
ÓÐÁ½ÖÖÖ÷ÒªµÄ UDF ÀàÐÍ£º·µ»Ø±êÁ¿ÖµµÄ UDF ºÍ·µ»Ø±íÖµµÄ UDF¡£ÔÚ±íÖµ UDF ÖУ¬Äú½«ÕÒµ½·µ»ØÄÚÁª±íºÍ¶àÓï¾ä±íµÄ UDF£¨Çë²Î¼ûͼ 1£©¡£ÔÚÒÔϲ¿·ÖÖУ¬ÎÒ½«¶ÔÿÖÖÀàÐͶ¼¼ÓÒÔ¹Ø×¢¡£
±êÁ¿ UDF
·µ»Ø±êÁ¿ÖµµÄ UDF ×îÀàËÆÓÚÐí¶à±à³ÌÓïÑÔËùÒýÓõÄ×÷Ϊº¯ÊýµÄÄÚÈÝ¡£ËüÃÇ·µ»ØÓɱêÁ¿Êý¾ÝÀàÐÍ£¨ÀýÈ磬integer¡¢varchar(n)¡¢char(n)¡¢money¡¢datetime¡¢bit£¬µÈµÈ£©×é³ÉµÄµ¥Ò»Öµ¡£Èç¹ûÓû§¶¨ÒåµÄÊý¾ÝÀàÐÍ (UDDT) »ùÓÚ±êÁ¿Êý¾ÝÀàÐÍ£¬UDF Ò²¿ÉÒÔ·µ»ØÕâЩÊý¾ÝÀàÐÍ¡£Ê¹ÓÃ
Ïà¹ØÎĵµ£º
ÊìϤSQL SERVER 2000µÄÊý¾Ý¿â¹ÜÀíÔ±¶¼ÖªµÀ£¬ÆäDTS¿ÉÒÔ½øÐÐÊý¾ÝµÄµ¼Èëµ¼³ö£¬Æäʵ£¬ÎÒÃÇÒ²¿ÉÒÔʹÓÃTransact-SQLÓï¾ä½øÐе¼Èëµ¼³ö²Ù×÷¡£ÔÚTransact-SQLÓï¾äÖУ¬ÎÒÃÇÖ÷ҪʹÓÃOpenDataSourceº¯Êý¡¢OPENROWSET º¯Êý£¬¹ØÓÚº¯ÊýµÄÏêϸ˵Ã÷£¬Çë²Î¿¼SQLÁª»ú°ïÖú¡£ÀûÓÃÏÂÊö·½·¨£¬¿ÉÒÔÊ®·ÖÈÝÒ×µØÊµÏÖSQL SERVER¡¢ACCESS¡¢EXCELÊý¾Ýת»»£ ......
1.´ò¿ªSQL server enterprise mananger “ÆóÒµ¹ÜÀíÆ÷”
ÔÚÄãÒªµ¼³öµÄSQLÊý¾Ý¿âÉÏÊó±êÓÒ¼ü²Ëµ¥£ºËùÓÐÈÎÎñ-¡·µ¼³öÊý¾Ý
2.»Ø³öÏÖÒ»¸öµ¼³öÏòµ¼´°¿Ú¡£
Ñ¡Ôñ±»µ¼³öµÄÊý¾ÝÔ´£¬ÎªÄã¸Õ²ÅËùÑ¡ÔñµÄÊý¾Ý¿â£¬Èç¹û·¢ÏÖ²»¶ÔÓ¦×ÔÐÐÐ޸ġ£
3.½øÈëµ¼³öµ½Ä¿±êÊý¾ÝÔ´µÄÑ¡Ôñ£¬ÕâÀïÎÒÃÇҪת³ÉACCESSµÄÊý¾Ý¿â¡£×¢ÒâÑ¡ÔñÊý¾ÝÔ´ÀàÐÍÎ ......
Èç¹ûÄã¾³£Óöµ½ÏÂÃæµÄÎÊÌ⣬Äã¾ÍÒª¿¼ÂÇʹÓÃSQL ServerµÄÄ£°åÀ´Ð´¹æ·¶µÄSQLÓï¾äÁË£º
SQL³õѧÕß¡£
¾³£Íü¼Ç³£ÓõÄDML»òÊÇDDL SQL Óï¾ä¡£
ÔÚ¶àÈË¿ª·¢Î¬»¤µÄSQLÖУ¬Ã¿¸öÈ˶¼ÓÐ×Ô¼ºµÄSQLϰ¹ß£¬Ã»ÓÐÒ»Ì×ͳһµÄ¹æ·¶¡£
ÔÚSQL Server Management StudioÖУ¬ÒѾ¸ø´ó¼ÒÌṩÁ˺ܶೣÓõÄÏÖ³ÉSQL¹æ·¶Ä£°å¡£
SQL Server Management ......
Sql Serverͬ±íÄڵļ¶ÁªÅÅÐò£¨¼´Í¬¸¸¼¶±ðµÄ×Ó½Úµã×ÔÐа´1~NÅÅÐò£©,2005°æ±¾ÒѾ×Ô´øÁËROW_NUMBER() OVER×Ӿ䣬¿ÉÒԺܷ½±ãµØÊµÏÖЧ¹û¡£µ«ÊÇ2000°æ±¾²»Ö§³ÖÕâÖÖ×ö·¨£¬²»¹ýÒ²¿ÉÒÔ²ÉÈ¡ÌØÊâ×ö·¨
--slq2005
select rd.id,r.id ruleId,ROW_NUMBER() OVER(
PARTITION BY r.id
ORDER BY ......
×òÌìÎÒµÄSQL£¨Microsoft SQL Server 2005 £©µÇ¼²»ÉÏÈ¥ÁË£¬ÔÀ´ÊdzöÏÖÁ˼¸¸öСÎÊÌ⣬ÏÖÔڼǼһÏÂÎҵĽâ¾öÕ⼸¸öÇé¿öµÄ°ì·¨¡££¨½â¾ö·½·¨ÓкܶàÖÖ£¬ÕâЩֻÊÇÎҵĽâ¾ö·½·¨£¬½ö¹©²Î¿¼£©
²éÕÒÎÊÌâµÄ¹ý³Ì£º£¨×¢£ºÓÃwindowsÕ˺ݹÊÇ¿ÉÒԵǼµÄ£©
µÚÒ»²½£º Æô¶¯ËùÓÐÓëSQLÓйصķþÎñ£¬ÎÊÌâÒÀ¾É£»
µÚ¶þ²½£º ²é¿´windows·À»ðǽ£ ......