/**变更申请同意--存储过程**/
USE [GUOYOUZI.Study]
IF EXISTS (SELECT name  
   FROM   sysobjects  
   WHERE  name = 'Proc_ChangeApply_Agree'  
   AND          type = 'P') 
DROP PROCEDURE Proc_ChangeApply_Agree 
GO 
CREATE PROCEDURE Proc_ChangeApply_Agree 
    @TaskId UNIQUEIDENTIFIER,
    @CDate DATETIME,
    @Step NVARCHAR(50)
AS
BEGIN

      --声明表变量
      DECLARE @TD TABLE (
        StudyID INT,
        TaskID UNIQUEIDENTIFIER,
        CDate DATETIME
      );
      
      --将某表中的数据插入到表变量中
      INSERT INTO @TD(StudyID,TaskID,CDate) SELECT a.StudyID,a.TaskID,a.CDate FROM Study a;
      
      --声明字段变量
      DECLARE @depID INT,                      --审批人部门ID
              @depName NVARCHAR(100),          --审批人部门名称
              @userID INT,                  --审批人ID
              @userName NVARCHAR(100),      --审批人名称
              @studyId INT;
      
      --WHILE循环的使用
      WHILE EXISTS (SELECT StudyID FROM @TD)
            BEGIN
            
                    SELECT TOP 1 @studyId = StudyID  FROM @TD ;
            
                    --IF条件的使用
                    IF(@Step='Apply')
                     BEGIN
                      SET @depID=1;--初始化单个变量
                     END
            
                    --判断是否为NULL
                    IF (@TaskId IS NOT NULL)
                     BEGIN
                       SELECT @depID=1,@userID=1;--初始化多个变量
                     END
            
                   --CASE的使用
                   SELECT @depName = CASE 
                          WHEN @depID=1 THEN '第一部门'
                          WHEN @depID=2 THEN '第二部门'
                      ELSE '未知部门' END ;
            
                   --
                   DELETE FROM @TD WHERE  StudyID =@studyId;
            END
END
--exec Proc_ChangeApply_Agree '','','';
posted on 2020-01-03 16:01  JioNote  阅读(338)  评论(0编辑  收藏  举报