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操作。

你可能感兴趣的:(MSSQL)