UDF—SQL Server 2000的新特性

本文将介绍Microsoft SQL Server 2000的新增特性—用户自定义函数User-Defined Function(UDF),并演示几个常用的实例。

 
   
   
   
 
 
   
   
     
       
         
       
     
     
   
 
 
   
   
   
 

  UDF的功能类似SQL Server中内建的系统函数,如CONVERT、SUBSTRING、 DATAADD、 GETDATA、ISNULL等等。一个UDF可以没有参数,或者带有一个或多个参数,函数运行后将会返回一个函数值。定义UDF的语法如下:



CREATE FUNCTION [ owner_name.] function_name



( { { @parameter_name scalar_parameter_data_type



[,…n] ] )



RETURN scalar_return_data_type



[WITH  [, … n]]



[AS]



BEGIN



Function_body



RETURN scalar_expression



END



每个UDF可以带有0个到1024个参数,每个参数可以是除了timestamp、cursor、table 以外所有的数据类型;函数返回值的限制要更多一些,它不可以是text、ntext、image、timestamp、cursor和table。



函数体是UDF的主要部分,它有两个选项: ENCRYOTION和 SCHEMABINDING。



SCHEMABINDING是SQL Server 2000的新增功能,可以和视图一同使用。该选项不允许删除和修改被该函数引用的对象。这样可以防止无效的函数和视图对它们引用的对象进行结构上的修改。



大家会注意到函数体以Begin开始,End结束。这一点不同于创建存储过程、触发器和视图。当您忘了写上Begin/End时,系统会返回一个提示信息“Incorrect syntax near ‘RETURN’”。为什么不直接说少了Begin/End,这有点让人费解。

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [SQL Server] 的这些文章也感兴趣:

SQL Server全文检索简介
微软要增强SQL 2005安全功能
SQL Server2005还原数据库
SQL Server 几种锁的区别
Analysis Services 2005中数据完整性处理(1)
在SQL Server数据库编写通用数据访问方法
在 SQL Server 2005 Beta 2 中编辑 Transact-SQL 代码
一个字节造成的巨大性能差异——SQL Server存储结构
MicroSoft SQLServer 2005 数据库镜像
使用ADO.NET配置SQL Server事务处理