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 :ÆÕͨSQLÓï¾ä¿ÉÒÔÓÃexecÖ´ÐÐ
Select * from tableName
exec('select * from tableName')
exec sp_executesql N'select * from tableName' -- Çë×¢Òâ×Ö·û´®Ç°Ò»¶¨Òª¼ÓN
2:×Ö¶ÎÃû£¬±íÃû£¬Êý¾Ý¿âÃûÖ®Àà×÷Ϊ±äÁ¿Ê±£¬±ØÐëÓö¯Ì¬SQL
declare @fname varchar(20)
set @fname = 'FiledName'
Select @fname from tab ......
¡ô1¡¢Ê¹ÓÃË÷ÒýÀ´¸ü¿ìµØ±éÀú±í
ȱʡÇé¿öϽ¨Á¢µÄË÷ÒýÊÇ·ÇȺ¼¯Ë÷Òý£¬µ«ÓÐʱËü²¢²»ÊÇ×î¼ÑµÄ¡£ÔÚ·ÇȺ¼¯Ë÷ÒýÏ£¬Êý¾ÝÔÚÎïÀíÉÏËæ»ú´æ·ÅÔÚÊý¾ÝÒ³ÉÏ¡£ºÏÀíµÄË÷ÒýÉè¼ÆÒª½¨Á¢ÔÚ¶Ô¸÷ÖÖ²éѯµÄ·ÖÎöºÍÔ¤²âÉÏ¡£Ò»°ãÀ´Ëµ£º¢Ù.ÓдóÁ¿Öظ´Öµ¡¢ÇÒ¾³£Óз¶Î§²éѯ£¨between, > ,< £¬> =,< =£©ºÍorder by¡¢group by·¢ÉúµÄÁÐ ......
×÷ΪһÃûDBA£¬ËûÃÇ×î³£¼ûµÄÈÕ³£ÈÎÎñÊÇ£º
1£©¶¨ÆÚÍê³ÉÊý¾Ý¿âµÄÍêÈ«±¸·Ý»ò²îÒ챸·Ý¡£
2£©¶¨ÆÚÇåÀí±¸·ÝÎļþ£¬ÒòΪ´æ´¢¿Õ¼äÓÐÏÞ£¬¿ÉÄÜÖ»ÐèÒª±£´æÒ»¸öʱÆÚ¶ÎÄÚµÄÎļþ(±ÈÈçÒ»ÖÜÄÚ»òÒ»ÔÂÄÚ)¡£
¶øÈçºÎ×öµ½ÕâÁ½µãÄØ£¿±ÊÕßÏàÐÅÔÚSQL SERVER2005°æ±¾³öÀ´Ö®Ç°ÒªÊµÏÖÕâÖÖ¹¦ÄÜ£¬ Ò²ÊÇ¿ÉÒÔʵÏֵģ¬Ö»ÊÇʵÏÖ¶¨ÆÚÇåÀí±¸·ÝÎļþÏԵò»ÄÇôֱ ......
ËäȻ˵ASP.NETÊôÓÚ°²È«ÐԸߵĽű¾ÓïÑÔ,µ«ÊÇÒ²¾³£¿´µ½ASP.NETÍøÕ¾ÓÉÓÚ¹ýÂ˲»ÑÏÔì³É×¢Éä.ÓÉÓÚASP.NET»ù±¾ÉÏÅäºÏMMSQLÊý¾Ý¿â¼ÜÉè Èç¹ûȨÏÞ¹ý´óµÄ»°ºÜÈÝÒ×±»¹¥»÷. ÔÙÕßÔÚÍøÂçÉÏÕÒ²»µ½ºÃµÄASP.NET·À×¢Éä½Å±¾,ËùÒÔ¾Í×Ô¼ºÐ´Á˸ö. ÔÚÕâÀï¹²Ïí³öÀ´Ö¼ÔÚÈóÌÐòÔ±Ãâ³ýSQL×¢ÈëµÄÀ§ÈÅ.
ÎÒдÁËÁ½¸ö°æ±¾,VB.NETºÍC#°æ±¾·½±ã²»Í¬³ÌÐò¼äʹÓà ......
sql serverµÄ money ÀàÐÍÆäʵ¾ÍÊÇСÊýÀàÐÍ decimal £¬ÎÒ²»Ï²»¶ÓÃËü£¬ÒòΪÓÐÒ»´Îʲô¹¤¾ßÉú³É£¬·¢ÏÖËü×Ô¶¯°ÑmoneyÀàÐÍת»»³ÉÁËdecimalÀàÐÍÁË£¬ÓëÆäÈÃËüת£¬»¹²»Èç×Ô¼ºÉè¼ÆÊý¾Ý¿âʱ½«»õ±ÒÀàÐÍ×Ö¶ÎÉèÖÃΪ decimal ÀàÐͲ»¾ÍµÃÁË£¬·ÏÄÇʸÉÂ ×Ö½ÚÊý ³¤¶È(СÊýµãǰ.СÊýµãºó) ......