Sql Server創建函數


  在使用數據庫的過程中,往往我們需要對有的數據先進行計算,然后再查詢出來,所以我們就需要創建函數來完成這項任務,在數據庫的Programmability(如圖1)下面的Function中創建函數(如圖2)

(圖1)(圖2)

在這里創建的函數一般有兩種返回類型,一種是返回一個集合(數據表),另一種是直接返回一個字符串(如圖3)

(圖3)

下面是兩種函數的創建實例

1、集合

創建函數fn_selectWorkTime

 

Create FUNCTION fn_selectWorkTime
(
    @plantID int
    , @CheckTime datetime --考勤時間
    , @deptID int --部門
    , @wShop int --工段
    , @roleID int --崗位
    , @wGroup int --班組
    , @uID int --員工
)
RETURNS @retValue Table (atWork datetime, offWork datetime)
AS
BEGIN
    Declare @onTime datetime
    , @offTime datetime
    
    --......

    Set @onTime = '2016-07-01 08:00'
    Set @offTime = '2016-07-01 17:00'

    Insert Into @retValue(atWork, offWork)
    Values(@onTime, @offTime)

    Return
END

 

在存儲過程中調用所創建的函數

Select * From dbo.fn_calStdAttAll(@plantid, @time1, @deptID, @wShop, @roleID, @wGroup, @uid5)

2、字符串

創建函數 fn_calStdAtt 

 

CREATE FUNCTION fn_calStdAtt
(
    @CheckTime datetime --考勤時間
    , @deptID int --部門
    , @wShop int --工段
    , @roleID int --崗位
    , @wGroup int --班組
    , @uID int --員工
    , @which char(1) --I:上班時間,O:下班時間
)
RETURNS varchar(20)
AS
BEGIN
    Declare @retValue datetime
    --......

    Set @retValue = '2016-07-01 08:00'

    Return Convert(varchar(20), @retValue, 120)
END

 

在存儲過程中調用所創建的函數

select dbo.fn_calStdAtt (@CheckTime, @deptID, @wShop, @roleID, @wGroup, @uID, @which)

 

以上只是個人在開發中的總結,不足之處望大家多指教


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM