SQLÖ®Óû§×Ô¶¨Ò庯Êý
Óû§×Ô¶¨Ò庯Êý£¨User Defined Functions£©ÊÇSQL Server µÄÊý¾Ý¿â¶ÔÏó£¬Ëü²»ÄÜÓÃÓÚÖ´ÐÐһϵÁиıäÊý¾Ý¿â״̬µÄ²Ù×÷£¬µ«Ëü¿ÉÒÔÏñϵͳº¯ÊýÒ»ÑùÔÚ²éѯ»ò´æ´¢¹ý³ÌµÈµÄ³ÌÐò¶ÎÖÐʹÓã¬Ò²¿ÉÒÔÏñ´æ´¢¹ý³ÌÒ»Ñùͨ¹ý EXECUTE ÃüÁîÀ´Ö´ÐС£Óû§×Ô¶¨Ò庯ÊýÖд洢ÁËÒ»¸öTransact-SQL Àý³Ì£¬¿ÉÒÔ·µ»ØÒ»¶¨µÄÖµ¡£
¡¡¡¡ÔÚSQL Server Öиù¾Ýº¯Êý·µ»ØÖµÐÎʽµÄ²»Í¬½«Óû§×Ô¶¨Ò庯Êý·ÖΪÈýÖÖÀàÐÍ£º
¡¡¡¡±êÁ¿Ðͺ¯Êý£¨Scalar functions£©
¡¡¡¡±êÁ¿Ðͺ¯Êý·µ»ØÒ»¸öÈ·¶¨ÀàÐ͵ıêÁ¿ÖµÆä·µ»ØÖµÀàÐÍΪ³ýTEXT¡¢ NTEXT¡¢ IMAGE¡¢CURSOR¡¢ TIMESTAMP ºÍTABLE ÀàÐÍÍâµÄÆäËüÊý¾ÝÀàÐÍ¡£º¯ÊýÌåÓï¾ä¶¨ÒåÔÚBEGIN-ENDÓï¾äÄÚ£¬ÆäÖаüº¬ÁË¿ÉÒÔ·µ»ØÖµµÄTransact-SQL ÃüÁî¡£
¡¡¡¡ÄÚÁª±íÖµÐͺ¯Êý£¨Inline table-valued functions£©
¡¡¡¡ÄÚÁª±íÖµÐͺ¯ÊýÒÔ±íµÄÐÎʽ·µ»ØÒ»¸ö·µ»ØÖµ£¬¼´Ëü·µ»ØµÄÊÇÒ»¸ö±íÄÚÁª±íÖµÐͺ¯ÊýûÓÐÓÉBEGIN-END Óï¾äÀ¨ÆðÀ´µÄº¯ÊýÌå¡£Æä·µ»ØµÄ±íÓÉÒ»¸öλÓÚRETURN ×Ó¾äÖеÄSELECT ÃüÁî¶Î´ÓÊý¾Ý¿âÖÐɸѡ³öÀ´¡£ÄÚÁª±íÖµÐͺ¯Êý¹¦ÄÜÏ൱ÓÚÒ»¸ö²ÎÊý»¯µÄÊÓͼ¡£
¡¡¡¡¶àÉùÃ÷±íÖµÐͺ¯Êý£¨Multi-statement table-valued functions£©
¡¡¡¡¶àÉùÃ÷±íÖµÐͺ¯Êý¿ÉÒÔ¿´×÷±êÁ¿ÐͺÍÄÚÁª±íÖµÐͺ¯ÊýµÄ½áºÏÌå¡£ËüµÄ·µ»ØÖµÊÇÒ»¸ö±í£¬µ«ËüºÍ±êÁ¿Ðͺ¯ÊýÒ»ÑùÓÐÒ»¸öÓÃBEGIN-END Óï¾äÀ¨ÆðÀ´µÄº¯ÊýÌ壬·µ»ØÖµµÄ±íÖеÄÊý¾ÝÊÇÓɺ¯ÊýÌåÖеÄÓï¾ä²åÈëµÄ¡£Óɴ˿ɼû£¬Ëü¿ÉÒÔ½øÐжà´Î²éѯ£¬¶ÔÊý¾Ý½øÐжà´ÎɸѡÓëºÏ²¢£¬ÃÖ²¹ÁËÄÚÁª±íÖµÐͺ¯ÊýµÄ²»×ã¡£ ¡¡
¡¡¡¡SQL Server ΪÈýÖÖÀàÐ͵ÄÓû§×Ô¶¨Ò庯ÊýÌṩÁ˲»Í¬µÄÃüÁî´´½¨¸ñʽ¡£
£¨1£© ´´½¨±êÁ¿ÐÍÓû§×Ô¶¨Ò庯Êý£¨Scalar functions£© ÆäÓï·¨ÈçÏ£º
¸÷²ÎÊý˵Ã÷ÈçÏ£º
¡¡¡¡owner_name £ºÖ¸¶¨Óû§×Ô¶¨Ò庯ÊýµÄËùÓÐÕß¡£¡¡¡¡function_name£ºÖ¸¶¨Óû§×Ô¶¨Ò庯ÊýµÄÃû³Æ¡£database_name.owner_name.function_name Ó¦ÊÇΩһµÄ¡£ ¡¡¡¡@parameter_name£º¶¨ÒåÒ»¸ö»ò¶à¸ö²ÎÊýµÄÃû³Æ¡£Ò»¸öº¯Êý×î¶à¿ÉÒÔ¶¨Òå1024 ¸ö²ÎÊýÿ¸ö²ÎÊýÇ°ÓÓ@”·ûºÅ±êÃ÷¡£²ÎÊýµÄ×÷Ó÷¶Î§ÊÇÕû¸öº¯Êý¡£²ÎÊýÖ»ÄÜÌæ´ú³£Á¿£¬²»ÄÜÌæ´ú±íÃû¡¢ÁÐÃû»òÆäËüÊý¾Ý¿â¶ÔÏóµÄÃû³Æ¡£Óû§×Ô¶¨Ò庯Êý²»Ö§³ÖÊä³ö²ÎÊý¡£¡¡¡¡¡¡scalar_parameter_data_type£ºÖ¸¶¨±êÁ¿ÐͲÎÊýµÄÊý¾ÝÀàÐÍ£¬¿ÉÒÔΪ³ýTEXT¡¢ NTEXT¡¢ IMAGE¡¢ CURSOR¡¢TIMESTAMP ºÍTABLE ÀàÐÍÍâµÄÆäËüÊý¾ÝÀàÐÍ¡£¡¡¡¡¡¡scalar_return_data_type£ºÖ¸¶¨±êÁ¿ÐÍ·µ»ØÖµµÄÊý¾ÝÀàÐÍ£¬¿ÉÒÔΪ³ýTEXT¡¢ NTEXT¡¢ IMAGE¡¢ CURSOR¡¢TIMESTAMP ºÍTABLE ÀàÐÍÍâµÄÆäËüÊ
Ïà¹ØÎĵµ£º
1 Âß¼Êý¾Ý¿âºÍ±íµÄÉè¼Æ
¡¡¡¡Êý¾Ý¿âµÄÂß¼Éè¼Æ¡¢°üÀ¨±íÓë±íÖ®¼äµÄ¹ØϵÊÇÓÅ»¯¹ØϵÐÍÊý¾Ý¿âÐÔÄܵĺËÐÄ¡£Ò»¸öºÃµÄÂß¼Êý¾Ý¿âÉè¼Æ¿ÉÒÔΪÓÅ»¯Êý¾Ý¿âºÍÓ¦ÓóÌÐò´òÏÂÁ¼ºÃµÄ»ù´¡¡£
¡¡¡¡±ê×¼»¯µÄÊý¾Ý¿âÂß¼Éè¼Æ°üÀ¨ÓöàµÄ¡¢ÓÐÏ໥¹ØϵµÄÕ±íÀ´´úÌæºÜ¶àÁеij¤Êý¾Ý±í¡£ÏÂÃæÊÇһЩʹÓñê×¼»¯±íµÄһЩºÃ´¦¡£
A:ÓÉÓÚ±íÕ£¬Òò´Ë¿É ......
sp_databases --Áгö·þÎñÆ÷ÉϵÄËùÓÐÊý¾Ý¿â
sp_server_info --Áгö·þÎñÆ÷ÐÅÏ¢£¬Èç×Ö·û¼¯£¬°æ±¾ºÍÅÅÁÐ˳Ðò
sp_stored_procedures--Áгöµ±Ç°»·¾³ÖеÄËùÓд洢¹ý³Ì
sp_tables --Áгöµ±Ç°»·¾³ÖÐËùÓпÉÒÔ²éѯµÄ¶ÔÏó
sp_start_job --Á¢¼´Æô¶¯×Ô¶¯»¯ÈÎÎñ
sp_stop_job --Í£Ö¹ÕýÔÚÖ´ÐеÄ×Ô¶¯»¯ÈÎÎñ
sp_password --Ì ......
×ö¿ª·¢µÄ¹ý³ÌÖо³£Óõ½Êý¾Ý¿âÔ¶³ÌÁ¬½ÓµÄÎÊÌ⣬ÓÐʱºòŪÁË°ëÌìÒ²½â¾ö²»ÁË£¬ÕâÀï¸ù¾ÝÎÒ×Ô¼ºµÄÒ»µã¾Àú¶ÔSQL ServerÔ¶³ÌÁ¬½ÓÎÊÌâ×öÒ»×ܼơ£
Ê×ÏÈÕâÀïÖ÷Ҫ˵µÄÊÇSQL Server 2005²»ÊÇ2000£¬ÒòΪ2000ÓÐһЩСµÄÀýÍ⣬ÀýÈç°²×°sp4²¹¶¡µÈ£¬ÕâÀï²»ÔÙÌÖÂÛ¡£ÊÂʵÉÏÎÒ ......
Select CONVERT(varchar(100), GETDATE(), 0): 05 16 2006 10:57AM
Select CONVERT(varchar(100), GETDATE(), 1): 05/16/06
Select CONVERT(varchar(100), GETDATE(), 2): 06.05.16
Select CONVERT(varchar(100), GETDATE(), 3): 16/05/06
Select CONVERT(varchar(100), GETDATE(), 4): 16.05.06
Select CONVERT ......
drop table #Tmp --ɾ³ýÁÙʱ±í#Tmp
create table #Tmp --´´½¨ÁÙʱ±í#Tmp
(
ID int IDENTITY (1,1) not null, --´´½¨ÁÐID,²¢ÇÒÿ´ÎÐÂÔöÒ»Ìõ¼Ç¼¾Í»á¼Ó1
WokNo &nb ......