SQL Server存儲過程中變量使用函數調用變量


USE  DB名稱
GO

SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

.

 

CREATE   PROCEDURE     存儲過程名
 @formID   nvarchar(20) ,                        --傳入參數
 @Error      int output

AS

DECLARE             @DayID                    NVARCHAR(10)            --當前日期
 DECLARE            @GLFDayID             NVARCHAR(10)            --費用計算日
 DECLARE            @EmpID                   NVARCHAR(50)            --人員工號
 DECLARE            @TFormDayID          NVARCHAR(10)            --  填單日期 
 DECLARE            @LWorkDay              NVARCHAR(10)            --最后工作日


 BEGIN 

  --給人員工號變量賦值

  SELECT @EmpID=EmpID  FROM    離職表簽核總表      WHERE    FormID=@formID       --(傳入單號變量)     

 
--新建一個temp表並插入temp表中離職人員所有請的非曠工假與實數

INSERT INTO   temp表   (VocaEmpID,VocaEmpName,VocaDayID,VocaTotalHours,ColType)  

SELECT  VocaEmpID,VocaEmpName,VocaDayID,A.VocaTotalHours,ColType
FROM  請假明細表 A, 離職表簽核總表 B
WHERE  A.CurrentStatus='5' AND A.VocaEmpID=B.EmpID AND A.ColType!='C04'  ORDER BY VocaEmpID DESC 

--更新臨時表中的人員責任制類型

UPDATE   temp表   SET  IsDuty=A.IsDuty   

FROM  人員信息表   A,    temp表  B 

WHERE A.EmpID=B.VocaEmpID     

--給變量賦值     [dbo].[RSN_FC_CostDay](EmpID)  為函數方法 

SELECT @DayID=CONVERT(NVARCHAR(10),GETDATE(),111),@EmpID=EmpID  ,@TFormDayID=CONVERT(NVARCHAR(10),ApDate,111) ,@GLFDayID=[dbo].[RSN_FC_CostDay](EmpID)    FROM    離職表簽核總表    WHERE FormID=@formID   

 

SELECT @LWorkDay=MAX(VocaDayID)  FROM     請假明細表   WHERE  VocaEmpID=@EmpID AND ColType='C04'  AND CurrentStatus='5'

INSERT INTO    HCB匯總表

(DayID ,

   FormNID ,

   EmpID ,

   TFormDayID ,

   LWorkDay ,

   GLFDayID ,

   IsTB ,

   CUser ,

   CDate ,

   LUser ,

   LDate

VALUES

(@DayID ,

   @formID,

   @EmpID ,

   @TFormDayID ,

   @LWorkDay ,

   @GLFDayID ,

   N'N' ,

   N' ' ,

  GETDATE() ,

   N' '

   GETDATE()

SET @Error= @@ERROR

TRUNCATE   TABLE   temp表

END

 


免責聲明!

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



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