8
0
Files
Skriptentwickung/current/[DD_IIM]-Database/[TBDD_CFG_SYSTEM_INFO_PROCEDURES].sql
2026-04-13 12:08:30 +02:00

140 lines
4.5 KiB
Transact-SQL
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
/* ============================================================================
SYSTEM_INFO PROZEDUREN
Voraussetzung: Tabelle [_meta].[TBDD_CFG_SYSTEM_INFO] existiert
============================================================================ */
USE [DD_IIM];
GO
DROP PROCEDURE IF EXISTS [_meta].[PRDD_INSERT_SYSTEM_INFO];
DROP PROCEDURE IF EXISTS [_meta].[PRDD_UPDATE_SYSTEM_INFO];
GO
CREATE OR ALTER PROCEDURE [_meta].[PRDD_UPSERT_SYSTEM_INFO]
@PK_CFG_SYSTEM_INFO_ID BIGINT = NULL,
@SYSTEM_VERSION NVARCHAR(50),
@COMMENT NVARCHAR(4000) = NULL,
@CREATED_WHO BIGINT,
@CREATED_WHEN DATETIME2(0),
@CHANGED_WHO BIGINT = NULL,
@CHANGED_WHEN DATETIME2(0) = NULL,
@OUT_PK_CFG_SYSTEM_INFO_ID BIGINT OUTPUT
AS
BEGIN
SET NOCOUNT ON;
DECLARE @identity_insert_enabled BIT = 0;
BEGIN TRY
EXEC sys.sp_set_session_context @key = N'_meta_allow_tbdd_system_info_dml', @value = 1;
IF @PK_CFG_SYSTEM_INFO_ID IS NULL
BEGIN
EXEC sys.sp_set_session_context @key = N'_meta_tbdd_system_info_use_input_pk', @value = 0;
INSERT INTO [_meta].[TBDD_CFG_SYSTEM_INFO]
(
[SYSTEM_VERSION],
[COMMENT],
[CREATED_WHO],
[CREATED_WHEN],
[CHANGED_WHO],
[CHANGED_WHEN]
)
VALUES
(
@SYSTEM_VERSION,
@COMMENT,
@CREATED_WHO,
@CREATED_WHEN,
@CHANGED_WHO,
@CHANGED_WHEN
);
SET @OUT_PK_CFG_SYSTEM_INFO_ID = CAST(@@IDENTITY AS BIGINT);
END
ELSE
BEGIN
UPDATE [_meta].[TBDD_CFG_SYSTEM_INFO]
SET [SYSTEM_VERSION] = @SYSTEM_VERSION,
[COMMENT] = @COMMENT,
[CHANGED_WHO] = @CHANGED_WHO,
[CHANGED_WHEN] = @CHANGED_WHEN
WHERE [PK_CFG_SYSTEM_INFO_ID] = @PK_CFG_SYSTEM_INFO_ID;
IF @@ROWCOUNT = 0
BEGIN
SET @identity_insert_enabled = 1;
EXEC sys.sp_set_session_context @key = N'_meta_tbdd_system_info_use_input_pk', @value = 1;
SET IDENTITY_INSERT [_meta].[TBDD_CFG_SYSTEM_INFO] ON;
INSERT INTO [_meta].[TBDD_CFG_SYSTEM_INFO]
(
[PK_CFG_SYSTEM_INFO_ID],
[SYSTEM_VERSION],
[COMMENT],
[CREATED_WHO],
[CREATED_WHEN],
[CHANGED_WHO],
[CHANGED_WHEN]
)
VALUES
(
@PK_CFG_SYSTEM_INFO_ID,
@SYSTEM_VERSION,
@COMMENT,
@CREATED_WHO,
@CREATED_WHEN,
@CHANGED_WHO,
@CHANGED_WHEN
);
SET IDENTITY_INSERT [_meta].[TBDD_CFG_SYSTEM_INFO] OFF;
SET @identity_insert_enabled = 0;
EXEC sys.sp_set_session_context @key = N'_meta_tbdd_system_info_use_input_pk', @value = 0;
END;
SET @OUT_PK_CFG_SYSTEM_INFO_ID = @PK_CFG_SYSTEM_INFO_ID;
END;
EXEC sys.sp_set_session_context @key = N'_meta_tbdd_system_info_use_input_pk', @value = NULL;
EXEC sys.sp_set_session_context @key = N'_meta_allow_tbdd_system_info_dml', @value = NULL;
END TRY
BEGIN CATCH
IF @identity_insert_enabled = 1
BEGIN
BEGIN TRY
SET IDENTITY_INSERT [_meta].[TBDD_CFG_SYSTEM_INFO] OFF;
END TRY
BEGIN CATCH
END CATCH
END;
EXEC sys.sp_set_session_context @key = N'_meta_tbdd_system_info_use_input_pk', @value = NULL;
EXEC sys.sp_set_session_context @key = N'_meta_allow_tbdd_system_info_dml', @value = NULL;
THROW;
END CATCH
END;
GO
CREATE OR ALTER PROCEDURE [_meta].[PRDD_DELETE_SYSTEM_INFO]
@PK_CFG_SYSTEM_INFO_ID BIGINT
AS
BEGIN
SET NOCOUNT ON;
BEGIN TRY
EXEC sys.sp_set_session_context @key = N'_meta_allow_tbdd_system_info_dml', @value = 1;
DELETE FROM [_meta].[TBDD_CFG_SYSTEM_INFO]
WHERE [PK_CFG_SYSTEM_INFO_ID] = @PK_CFG_SYSTEM_INFO_ID;
EXEC sys.sp_set_session_context @key = N'_meta_allow_tbdd_system_info_dml', @value = NULL;
END TRY
BEGIN CATCH
EXEC sys.sp_set_session_context @key = N'_meta_allow_tbdd_system_info_dml', @value = NULL;
THROW;
END CATCH
END;
GO