Я использую триггеры для аудита изменений таблицы. Сейчас я захватить отдельные изменения столбцов в следующем:SQL - Конкатенация всех столбцов из любой таблицы
DECLARE @statement VARCHAR(MAX)
SELECT @statement =
'Col1: ' + CAST(ISNULL(Col1, '') AS VARCHAR) + ', Col2: ' + CAST(ISNULL(Col2, '') AS VARCHAR) + ', Col3: ' + CAST(ISNULL(Col3, '') AS VARCHAR)
FROM INSERTED;
Проблема заключается в том, мне нужно настроить имена столбцов для каждой таблицы/триггера, который я хочу провести аудит против. Есть ли способ, которым я могу построить @statement, независимо от таблицы, используя более общий подход?
веселит Дэвид
Возможный дубликат [Как создать общую SQL Server хранимую процедуру для выполнения вставок в таблицу аудита на основе вставленных и удаленных в триггерах] (http://stackoverflow.com/questions/8873335/how-to-create-generic- sql-server-stored-procedure-to-perform-inserts-in-audit) – GSerg
У всех типов данных столбцов есть подходящие преобразования из '' '' для использования в 'ISNULL()', например вы не используете 'VarBinary'? Является ли потеря 'NULL' проблемой? – HABO
Почему бы не иметь отдельную таблицу аудита для каждой таблицы в базе данных? Таким образом, структура аудита может имитировать исходную структуру таблицы. –