8
0

Serverumzug

This commit is contained in:
2026-04-13 12:08:30 +02:00
parent 3096e432aa
commit 82609f5fc1
48 changed files with 5489 additions and 618 deletions

View File

@@ -0,0 +1,207 @@
/* ============================================================================
FUNCTION_MODULE PROZEDUREN
Voraussetzung: Tabelle [_meta].[TBDD_CFG_FUNCTION_MODULE] existiert
============================================================================ */
USE [DD_IIM];
GO
CREATE OR ALTER PROCEDURE [_meta].[PRDD_UPSERT_FUNCTION_MODULE]
@PK_CFG_FUNCTION_MODULE_ID BIGINT = NULL,
@ACTIVE BIT,
@INTERNAL BIT,
@FUNCTION_NAME NVARCHAR(50),
@FUNCTION_TYPE NVARCHAR(10),
@FUNCTION_DEFINITION NVARCHAR(MAX),
@COMMENT NVARCHAR(500) = NULL,
@VERSION SMALLINT = 1,
@CREATED_WHO BIGINT,
@CREATED_WHEN DATETIME2(0),
@CHANGED_WHO BIGINT = NULL,
@CHANGED_WHEN DATETIME2(0) = NULL,
@OUT_PK_CFG_FUNCTION_MODULE_ID BIGINT OUTPUT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @identity_insert_enabled BIT = 0;
DECLARE @next_insert_id BIGINT;
DECLARE @app_lock_result INT;
BEGIN TRY
SET CONTEXT_INFO 0x544244445F46554E4354494F4E5F4D4F44554C45;
IF @PK_CFG_FUNCTION_MODULE_ID IS NOT NULL
BEGIN
UPDATE [_meta].[TBDD_CFG_FUNCTION_MODULE]
SET [ACTIVE] = @ACTIVE,
[INTERNAL] = @INTERNAL,
[FUNCTION_NAME] = @FUNCTION_NAME,
[FUNCTION_TYPE] = @FUNCTION_TYPE,
[FUNCTION_DEFINITION] = @FUNCTION_DEFINITION,
[COMMENT] = @COMMENT,
[VERSION] = @VERSION,
[CHANGED_WHO] = @CHANGED_WHO,
[CHANGED_WHEN] = @CHANGED_WHEN
WHERE [PK_CFG_FUNCTION_MODULE_ID] = @PK_CFG_FUNCTION_MODULE_ID;
IF @@ROWCOUNT = 1
BEGIN
SET @OUT_PK_CFG_FUNCTION_MODULE_ID = @PK_CFG_FUNCTION_MODULE_ID;
END
ELSE
BEGIN
IF @PK_CFG_FUNCTION_MODULE_ID < 100001
BEGIN
THROW 52011, 'Explizite PK_CFG_FUNCTION_MODULE_ID muss >= 100001 sein.', 1;
END;
SET @identity_insert_enabled = 1;
SET IDENTITY_INSERT [_meta].[TBDD_CFG_FUNCTION_MODULE] ON;
INSERT INTO [_meta].[TBDD_CFG_FUNCTION_MODULE]
(
[PK_CFG_FUNCTION_MODULE_ID],
[ACTIVE],
[INTERNAL],
[FUNCTION_NAME],
[FUNCTION_TYPE],
[FUNCTION_DEFINITION],
[COMMENT],
[VERSION],
[CREATED_WHO],
[CREATED_WHEN],
[CHANGED_WHO],
[CHANGED_WHEN]
)
VALUES
(
@PK_CFG_FUNCTION_MODULE_ID,
@ACTIVE,
0,
@FUNCTION_NAME,
@FUNCTION_TYPE,
@FUNCTION_DEFINITION,
@COMMENT,
@VERSION,
@CREATED_WHO,
@CREATED_WHEN,
@CHANGED_WHO,
@CHANGED_WHEN
);
SET IDENTITY_INSERT [_meta].[TBDD_CFG_FUNCTION_MODULE] OFF;
SET @identity_insert_enabled = 0;
SET @OUT_PK_CFG_FUNCTION_MODULE_ID = @PK_CFG_FUNCTION_MODULE_ID;
END;
END
ELSE
BEGIN
EXEC @app_lock_result = sys.sp_getapplock
@Resource = N'_meta.PRDD_UPSERT_FUNCTION_MODULE.IDENTITY_RANGE',
@LockMode = N'Exclusive',
@LockOwner = N'Session',
@LockTimeout = 10000;
IF @app_lock_result < 0
BEGIN
THROW 52010, 'Konnte keine exklusive ID-Sperre für [_meta].[TBDD_CFG_FUNCTION_MODULE] erhalten.', 1;
END;
SELECT @next_insert_id = CASE
WHEN MAX([PK_CFG_FUNCTION_MODULE_ID]) IS NULL OR MAX([PK_CFG_FUNCTION_MODULE_ID]) < 100000 THEN 100001
ELSE MAX([PK_CFG_FUNCTION_MODULE_ID]) + 1
END
FROM [_meta].[TBDD_CFG_FUNCTION_MODULE];
SET @identity_insert_enabled = 1;
SET IDENTITY_INSERT [_meta].[TBDD_CFG_FUNCTION_MODULE] ON;
INSERT INTO [_meta].[TBDD_CFG_FUNCTION_MODULE]
(
[PK_CFG_FUNCTION_MODULE_ID],
[ACTIVE],
[INTERNAL],
[FUNCTION_NAME],
[FUNCTION_TYPE],
[FUNCTION_DEFINITION],
[COMMENT],
[VERSION],
[CREATED_WHO],
[CREATED_WHEN],
[CHANGED_WHO],
[CHANGED_WHEN]
)
VALUES
(
@next_insert_id,
@ACTIVE,
0,
@FUNCTION_NAME,
@FUNCTION_TYPE,
@FUNCTION_DEFINITION,
@COMMENT,
@VERSION,
@CREATED_WHO,
@CREATED_WHEN,
@CHANGED_WHO,
@CHANGED_WHEN
);
SET IDENTITY_INSERT [_meta].[TBDD_CFG_FUNCTION_MODULE] OFF;
SET @identity_insert_enabled = 0;
EXEC sys.sp_releaseapplock
@Resource = N'_meta.PRDD_UPSERT_FUNCTION_MODULE.IDENTITY_RANGE',
@LockOwner = N'Session';
SET @OUT_PK_CFG_FUNCTION_MODULE_ID = @next_insert_id;
END;
SET CONTEXT_INFO 0x00;
END TRY
BEGIN CATCH
IF @identity_insert_enabled = 1
BEGIN
BEGIN TRY
SET IDENTITY_INSERT [_meta].[TBDD_CFG_FUNCTION_MODULE] OFF;
END TRY
BEGIN CATCH
END CATCH
END;
BEGIN TRY
EXEC sys.sp_releaseapplock
@Resource = N'_meta.PRDD_UPSERT_FUNCTION_MODULE.IDENTITY_RANGE',
@LockOwner = N'Session';
END TRY
BEGIN CATCH
END CATCH
SET CONTEXT_INFO 0x00;
THROW;
END CATCH
END;
GO
CREATE OR ALTER PROCEDURE [_meta].[PRDD_DELETE_FUNCTION_MODULE]
@PK_CFG_FUNCTION_MODULE_ID BIGINT
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRY
SET CONTEXT_INFO 0x544244445F46554E4354494F4E5F4D4F44554C45;
DELETE FROM [_meta].[TBDD_CFG_FUNCTION_MODULE]
WHERE [PK_CFG_FUNCTION_MODULE_ID] = @PK_CFG_FUNCTION_MODULE_ID;
SET CONTEXT_INFO 0x00;
END TRY
BEGIN CATCH
SET CONTEXT_INFO 0x00;
THROW;
END CATCH
END;
GO