UDF和存储过程很类似,用户自定义函数是一组有序的T-SQL语句,这些语句被预先优化和编译,并且可以作为一个单元来测试调用。UDF和存储过程的主要区别在于结果返回方式,为了能支持更多返回值,UDF比存储过程有跟多限制。
UDF基本语法:CREATE FUNCTION <function name> (<@parameter name> <data type>[default value][......n)
RETURNS <返回类型>
AS begin /*代码*/ end
试一试最简单是UDF:
CREATE FUNCTION fun_GetDateDIff(@startDate datetime,@endDate datetime) returns int AS BEGIN return datediff(month,@startDate,@endDate); END GO select ProductID,sum(LineTotal) from Purchasing.PurchaseOrderDetail where dbo.fun_GetDateDIff(DueDate,getdate())=142 /**/ group by ProductID --查询前的142的数据
修改UDF:直接把CREATE 改为ALTER就可以了。UDF基本和存储过程差不多的。
这一章比较简单。不会写太多,下一篇讲事务和锁。感觉后面写的越来越吃力了。有点写不下的冲动了。