У меня две проблемы, и я прошу о помощи:)
Я должен создать триггеры в таблицах sys для регистрации любых изменений, например. обновляет, удаляет и вставляет.
Я хотел бы сохранить журналы в таблице, в которой будет один столбец для хранения данных из записи (старая или новая - вставка / удаление) или для сохранения различий между старой и новой версией записи (обновление).
Моя проблема в том, как сохранить эту информацию, особенно в том, как «преобразовать» простую запись в строку и как записывать обновления. я думал, что могу использовать что-то вроде:
exec ('select ' + @col + ' from deleted')
в теле тигра, но это не работает.
@ col. Переменная - это имя столбца. я не знаю имен столбцов и их количества (я хочу, чтобы мои триггеры были универсальными для каждой таблицы). для хранения имен столбцов я использую курсор на основе команды:
select
COLUMN_NAME
from
INFORMATION_SCHEMA.COLUMNS
where
TABLE_NAME = (SELECT object_name(parent_obj)
FROM sysobjects WHERE id = @@procid)
пожалуйста, помогите:)