/**变更申请同意--存储过程**/
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 '','','';