32 lines
1.3 KiB
Transact-SQL
32 lines
1.3 KiB
Transact-SQL
UPDATE TBDD_MODULES SET DB_VERSION = '3.4' where NAME = 'Process-Manager';
|
|
GO
|
|
|
|
SET ANSI_NULLS ON
|
|
GO
|
|
SET QUOTED_IDENTIFIER ON
|
|
GO
|
|
ALTER PROCEDURE [dbo].[PRTF_PROFILE_FILES_WORK] @pDocID BIGINT,@pProfilID INTEGER,@pUserID INTEGER, @pMode VARCHAR(100)
|
|
AS
|
|
BEGIN
|
|
-- Race Condition verhindern mit MERGE
|
|
MERGE TBTF_PROFILE_FILES_WORK AS target
|
|
USING (SELECT @pProfilID AS ProfileID, @pDocID AS DocID) AS source
|
|
ON (target.ProfileID = source.ProfileID AND target.DocID = source.DocID)
|
|
WHEN NOT MATCHED THEN
|
|
INSERT (ProfileID, DocID, Action_UserID, Action_When, InWork, Worked)
|
|
VALUES (@pProfilID, @pDocID, @pUserID, GETDATE(), 0, 0);
|
|
|
|
IF @pMode = 'FreeFile'
|
|
BEGIN
|
|
PRINT 'FreeFile ...'
|
|
UPDATE TBTF_PROFILE_FILES_WORK SET InWork = 0, Action_When = NULL, Action_UserID = @pUserID
|
|
WHERE DocID = @pDocID AND ProfileID = @pProfilID AND InWork = 1;
|
|
END
|
|
ELSE IF @pMode = 'InWork'
|
|
UPDATE TBTF_PROFILE_FILES_WORK SET InWork = 1, Action_When = GETDATE(), Action_UserID = @pUserID
|
|
WHERE DocID = @pDocID AND ProfileID = @pProfilID AND InWork = 0;
|
|
ELSE IF @pMode = 'Worked'
|
|
UPDATE TBTF_PROFILE_FILES_WORK SET InWork = 0,Worked = 1, Action_When = GETDATE(), Action_UserID = @pUserID
|
|
WHERE DocID = @pDocID AND ProfileID = @pProfilID AND Worked = 0;
|
|
END
|