Как создать динамический триггер с хранимой процедурой в SQL Server - PullRequest
0 голосов
/ 02 марта 2019

Я работаю над контрольным журналом, используя триггеры SQL Server для определения вставок, обновлений и удалений в таблицах.Ниже приведены мои таблицы и триггер:

CREATE TABLE [dbo].[AuditTrail]
(
   [AuditId] [INT] IDENTITY(1,1) NOT NULL,
   [DateTime] [DATETIME] NOT NULL,
   [TableName] [NVARCHAR](255) NOT NULL,
   [AuditEntry] [XML] NULL,

   CONSTRAINT [PK_AuditTrail] PRIMARY KEY CLUSTERED 
)

CREATE TABLE [dbo].[Employee]
(
   [ID] [UNIQUEIDENTIFIER] NOT NULL DEFAULT (newid()),
   [NameEmployee] [NVARCHAR](255) NOT NULL,

   CONSTRAINT [PK_Employee] PRIMARY KEY CLUSTERED 
)

CREATE TABLE [dbo].[Transaction]
(
   [ID] [UNIQUEIDENTIFIER] NOT NULL DEFAULT (newid()),
   [NameTransaction] [NVARCHAR](255) NOT NULL,

   CONSTRAINT [PK_Transaction] PRIMARY KEY CLUSTERED 
)

CREATE TRIGGER AuditEmployee 
ON [dbo].[Employee]
AFTER INSERT, DELETE, UPDATE
AS 
BEGIN
    SET NOCOUNT ON;

    IF (SELECT COUNT(*) FROM deleted) > 0 
    BEGIN
        DECLARE @AuditMessage XML
        SET @AuditMessage = (SELECT * FROM deleted FOR XML AUTO) 

        INSERT INTO AuditTrail (DateTime, TableName, AuditEntry)  
        VALUES (GETDATE(), 'Simple', @AuditMessage)
    END
END
GO

Я создал триггер для таблицы сотрудников, но это статический триггер.Как динамический запуск с помощью хранимой процедуры зависит от количества таблиц, которые у нас есть, кроме таблицы AuditTrail?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...