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

115 lines
3.4 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 TRIGGER
Voraussetzung: Tabelle [_meta].[TBDD_CFG_SYSTEM_INFO] und Prozeduren existieren
============================================================================ */
USE [DD_IIM];
GO
CREATE OR ALTER TRIGGER [_meta].[TBDD_CFG_SYSTEM_INFO_IO_INS]
ON [_meta].[TBDD_CFG_SYSTEM_INFO]
INSTEAD OF INSERT
AS
BEGIN
SET NOCOUNT ON;
IF TRY_CAST(SESSION_CONTEXT(N'_meta_allow_tbdd_system_info_dml') AS bit) = 1
BEGIN
IF TRY_CAST(SESSION_CONTEXT(N'_meta_tbdd_system_info_use_input_pk') AS bit) = 1
BEGIN
INSERT INTO [_meta].[TBDD_CFG_SYSTEM_INFO]
(
[PK_CFG_SYSTEM_INFO_ID],
[SYSTEM_VERSION],
[COMMENT],
[CREATED_WHO],
[CREATED_WHEN],
[CHANGED_WHO],
[CHANGED_WHEN]
)
SELECT
i.[PK_CFG_SYSTEM_INFO_ID],
i.[SYSTEM_VERSION],
i.[COMMENT],
i.[CREATED_WHO],
i.[CREATED_WHEN],
i.[CHANGED_WHO],
i.[CHANGED_WHEN]
FROM inserted i;
END
ELSE
BEGIN
INSERT INTO [_meta].[TBDD_CFG_SYSTEM_INFO]
(
[SYSTEM_VERSION],
[COMMENT],
[CREATED_WHO],
[CREATED_WHEN],
[CHANGED_WHO],
[CHANGED_WHEN]
)
SELECT
i.[SYSTEM_VERSION],
i.[COMMENT],
i.[CREATED_WHO],
i.[CREATED_WHEN],
i.[CHANGED_WHO],
i.[CHANGED_WHEN]
FROM inserted i;
END;
RETURN;
END;
THROW 51001, 'Direktes INSERT auf [_meta].[TBDD_CFG_SYSTEM_INFO] ist nicht erlaubt. Bitte Prozedur [_meta].[PRDD_UPSERT_SYSTEM_INFO] verwenden.', 1;
END;
GO
CREATE OR ALTER TRIGGER [_meta].[TBDD_CFG_SYSTEM_INFO_IO_UPD]
ON [_meta].[TBDD_CFG_SYSTEM_INFO]
INSTEAD OF UPDATE
AS
BEGIN
SET NOCOUNT ON;
IF TRY_CAST(SESSION_CONTEXT(N'_meta_allow_tbdd_system_info_dml') AS bit) = 1
BEGIN
UPDATE t
SET t.[SYSTEM_VERSION] = i.[SYSTEM_VERSION],
t.[COMMENT] = i.[COMMENT],
t.[CREATED_WHO] = i.[CREATED_WHO],
t.[CREATED_WHEN] = i.[CREATED_WHEN],
t.[CHANGED_WHO] = i.[CHANGED_WHO],
t.[CHANGED_WHEN] = i.[CHANGED_WHEN]
FROM [_meta].[TBDD_CFG_SYSTEM_INFO] t
JOIN inserted i
ON i.[PK_CFG_SYSTEM_INFO_ID] = t.[PK_CFG_SYSTEM_INFO_ID];
RETURN;
END;
THROW 51002, 'Direktes UPDATE auf [_meta].[TBDD_CFG_SYSTEM_INFO] ist nicht erlaubt. Bitte Prozedur [_meta].[PRDD_UPSERT_SYSTEM_INFO] verwenden.', 1;
END;
GO
CREATE OR ALTER TRIGGER [_meta].[TBDD_CFG_SYSTEM_INFO_IO_DEL]
ON [_meta].[TBDD_CFG_SYSTEM_INFO]
INSTEAD OF DELETE
AS
BEGIN
SET NOCOUNT ON;
IF TRY_CAST(SESSION_CONTEXT(N'_meta_allow_tbdd_system_info_dml') AS bit) = 1
BEGIN
DELETE t
FROM [_meta].[TBDD_CFG_SYSTEM_INFO] t
JOIN deleted d
ON d.[PK_CFG_SYSTEM_INFO_ID] = t.[PK_CFG_SYSTEM_INFO_ID];
RETURN;
END;
THROW 51003, 'Direktes DELETE auf [_meta].[TBDD_CFG_SYSTEM_INFO] ist nicht erlaubt. Bitte Prozedur [_meta].[PRDD_DELETE_SYSTEM_INFO] verwenden.', 1;
END;
GO