SQL Server Óû§¶¨ÒåµÄº¯Êý
·¢²¼ÈÕÆÚ : 1/14/2005 | ¸üÐÂÈÕÆÚ : 1/14/2005
John Papa
Óû§¶¨ÒåµÄº¯Êý (UDF) ÊÇ×¼±¸ºÃµÄ´úÂëƬ¶Î£¬Ëü¿ÉÒÔ½ÓÊܲÎÊý£¬´¦ÀíÂß¼£¬È»ºó·µ»ØijЩÊý¾Ý¡£¸ù¾Ý 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µÄÄ£°åÀ´Ð´¹æ·¶µÄSQLÓï¾äÁË£º
SQL³õѧÕß¡£
¾³£Íü¼Ç³£ÓõÄDML»òÊÇDDL SQL Óï¾ä¡£
ÔÚ¶àÈË¿ª·¢Î¬»¤µÄSQLÖУ¬Ã¿¸öÈ˶¼ÓÐ×Ô¼ºµÄSQLÏ°¹ß£¬Ã»ÓÐÒ»Ì×ͳһµÄ¹æ·¶¡£
ÔÚSQL Server Management StudioÖУ¬ÒѾ¸ø´ó¼ÒÌṩÁ˺ܶೣÓõÄÏÖ³ÉSQL¹æ·¶Ä£°å¡£
SQL Server Management ......
Ô´´ÓÚ2008Äê06ÔÂ18ÈÕ£¬2009Äê10ÔÂ18ÈÕǨÒÆÖÁ´Ë¡£
»ñÈ¡SQLServer
µÄ×îÍêÕûÊý¾Ý×ÖµäµÄSQL
Óï¾ä
ÆäʵÍøÉÏÒѾÁ÷´«Á˺ܶà¹ØÓÚ»ñÈ¡
SQLServer
µÄÊý¾Ý×ÖµäµÄ°æ±¾£¬²»¹ýÎÒÏàÐÅÕâ¸öÓ¦¸ÃÊÇ×îÈ«µÄÁË£¬±¾Óï¾ä°üÀ¨ÁË±í¡¢×ֶΡ¢×Ö¶ÎÀàÐÍ¡¢×ֶγ¤¶È¡¢ÊÇ·ñΪ¿Õ¡¢ÊÇ·ñµÝÔö×ֶΡ¢Ë÷ÒýÃû³Æ¡¢Ë÷ÒýµÄ¶¨Î»¡¢Ë÷ÒýÀàÐÍ¡¢Ö÷¼ü¡¢Íâ¼üµ ......
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 ......
ASPµ÷Óô洢¹ý³ÌµÄ·½·¨£º
---- ¡¡¡¡µ÷Óô洢¹ý³ÌµÄ·½·¨ÐèҪʹÓÃADOµÄCommand¶ÔÏó¡£Command¶ÔÏóÊǶÔÒ»¸öÊý¾ÝÔ´ÔËÐÐÌض¨ÃüÁîµÄ¶¨Ò壨ÀýÈ磬һ¸öSQL²éѯ»òÒ»¸öSQL´æ´¢¹ý³Ì£©¡£ÏÂÃæÒÔMS SQL SERVER6.5Ϊºǫ́Êý¾Ý¿â£¬½éÉÜASPµ÷Óô洢¹ý³ÌµÄ·½·¨¡£
---- ¡ ......
<%
SQL1 = "update table1 set a=b where id=1"
Conn.ExeCute SQL1
SQL2 = "update table2 set a=b where id=2"
Conn.ExeCute SQL2
SQL3 = "update table3 set a=b where id=3"
Conn.ExeCute SQL3
%>
&nb ......