Вы можете использовать либо DDL триггеров или Функция аудита SQL Server
DDL триггеров пожара на CREATE, ALTER, DROP, и операции, связанные с настройками безопасности объектов базы данных (например, GRANT, DENY ...)
В в следующем примере триггер DDL отслеживает операции CREATE, ALTER и DROP, выполняемые в таблицах базы данных, хранимых процедурах, функциях и представлениях. Пример запуска использует ранее созданный репозиторий таблицы (DDL_Events_by_DDL_TRIGGER) с соответствующими строками
CREATE TRIGGER DDL_TRIGGER ON DATABASE
FOR CREATE_TABLE ,
ALTER_TABLE ,
DROP_TABLE ,
CREATE_PROCEDURE ,
ALTER_PROCEDURE ,
DROP_PROCEDURE ,
CREATE_FUNCTION ,
ALTER_FUNCTION ,
DROP_FUNCTION ,
CREATE_VIEW ,
ALTER_VIEW ,
DROP_VIEW
AS
DECLARE
@event xml;
SET
@event = EVENTDATA();
INSERT INTO DDL_Events_by_DDL_TRIGGER
VALUES
(
REPLACE(CONVERT(varchar(58),
@event.query('data(/EVENT_INSTANCE/PostTime)')), 'T', ' ')
,
CONVERT(varchar(185),
@event.query('data(/EVENT_INSTANCE/LoginName)'))
,
CONVERT(varchar(185),
@event.query('data(/EVENT_INSTANCE/DatabaseName)'))
,
CONVERT(varchar(185),
@event.query('data(/EVENT_INSTANCE/SchemaName)'))
,
CONVERT(varchar(185),
@event.query('data(/EVENT_INSTANCE/ObjectName)'))
,
CONVERT(varchar(185),
@event.query('data(/EVENT_INSTANCE/ObjectType)'))
,
CONVERT(varchar(max),
@event.query('data(/EVENT_INSTANCE/TSQLCommand/CommandText)'))
);
В таблице хранилище будет содержать (как указано в триггере) операций DDL на схеме базы данных, вместе с информацией о том, кто, когда и что было изменено
Другой собственный метод, который может быть использован для определения того, была ли изменена база данных SQL Server, - SQL Server Audit feature. Эта функция была внедрена в SQL Server 2008 и собирает действия сервера и уровня базы данных, связанные с функцией расширенных событий SQL Server.Тем не менее, группы действий уровня базы данных доступны только в выпусках SQL Server Enterprise и Developer
Я пишу в своем ответе об этом: «Есть некоторые продукты разных поставщиков, которые пытаются получить информацию из журнала транзакций, но это неправильно путь.". В моем случае Apex SQL Log помогает мне только один раз из пяти случаев. И это работает, только если у вас FULL модельный режим. – demas 2010-11-25 09:14:14