zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    n-1位数
    关于VC预定义常量_WIN32,WIN32,_WIN64
    python中的闭包
    TCP粘包, UDP丢包, nagle算法
    C++中 explicit的用法
    为什么mysql索引要使用B+树,而不是B树,红黑树
    屏障和屏障属性
    带有超时的读写锁
    pthread_mutex_timedlock
    段错误以及调试方式
  • 原文地址:https://www.cnblogs.com/ximi07/p/10461181.html
Copyright © 2011-2022 走看看