MSSQL手札四 MSSQL的函数

时间:2023-03-10 07:28:46
MSSQL手札四  MSSQL的函数

和oracle一样,sql也可以自己定义函数

一个返回值,引用DEMO如下:

编写一个函数,该函数,可以通过输入借书时间来判断是否到期,当借阅时间大于30天,返回已经过期;否则返回还未到期。

CREATE FUNCTION IsDateout(@BDate datetime)
returns nvarchar(20)
AS
BEGIN
DECLARE @myresult nvarchar(20)
IF (datediff(day,@BDate,getdate())>30)
BEGIN
SET @myresult='已过期'
end
else
begin
set @myresult='未到期'
end
RETURN (@myresult)
END SELECT dbo.IsDateout(cast('2009-12-17' AS datetime))--结果已过期
SELECT dbo.IsDateout(cast('2010-12-17' AS datetime))--结果未到期

在百度文库这里有一个基础介绍比较全,大家可以看一下:

http://wenku.baidu.com/link?url=Z3ddYnO9msKYCgu-AjjkeG7jBtJCq4hkuNRp6_Y_6mrCSaK_CdmjygCoKqZVrwd5w7R4sVWaERSpBrFiRM4SYo5z_Q54kRGbAA188ThixqW

注意的是begin前是returns,begin里面是return。

一般情况下不要使用函数去调用存储过程,函数不可以更改数据库状态,函数也可以在内部返回一个表类型(table),类似一个可以传入参数的视图,并且还可以传入参数对表进行DML操作。