Проверить наличие изменений в базе данных SQL Server? - PullRequest
3 голосов
/ 30 ноября 2010

Есть ли способ получить контрольную сумму базы данных с помощью системных функций SQL Server?

Или другой способ быстро выяснить, есть ли какие-либо изменения в базе данных?

Я не хочу использовать для этого какое-либо специальное программное обеспечение для анализа баз данных.

Я ищу любые изменения в базе данных (изменения схемы / объекта, изменения данных).

Я использую SQL Server 2008.

Ответы [ 4 ]

3 голосов
/ 30 ноября 2010

Вы можете найти информацию в журнале транзакций ...

Использование

DBCC LOG(<database name>[,{0|1|2|3|4}])

0 - Основная информация журнала (по умолчанию)

1 - Полная информация

2 - Очень длинная информация

3 - Подробно

4 - Полная

Пример:

DBCC log (MY_DB, 4)

Результат несколько загадочныйи лучше использовать со сторонним инструментом, который ...

Кредиты: http://www.mssqlcity.com/Articles/KnowHow/ViewLog.htm

РЕДАКТИРОВАТЬ:

Вы можете попробовать

Select * from ::fn_dblog(null, null)

На этой странице содержится некоторая полезная информация о результатах, возвращаемых функциями ... http://www.novicksoftware.com/udfofweek/Vol1/T-SQL-UDF-Volume-1-Number-27-fn_dblog.htm

Имейте в виду, что эти процедуры не предназначены для общественности и, следовательно, их нелегко понять.Другая возможность - добавить триггеры на все таблицы.Но с другой стороны это большая работа.

1 голос
/ 30 ноября 2010

Один из подходов к записи / регистрации изменений схемы заключается в использовании триггеров DDL с SQL Server 2005.

Вы можете настроить их в базе данных для запуска определенных типов изменений схемы (например, CREATE_PROCEDURE, ALTER_PROCEDURE), а затем вести любой журнал, который вы хотите.

0 голосов
/ 15 декабря 2014

Я обнаружил, что в выпуске SQL Server 2008+ Enterprise есть функция под названием Сбор данных изменений

. Она будет фиксировать любые вставки, обновления, удаления в базе данных.К сожалению, у меня нет версии Enterprise, чтобы проверить это.Я добавлю сюда ссылки, чтобы в будущем это кому-нибудь помогло.

Включение / отключение захвата изменения данных

Хорошая рецензия на то, какчтобы использовать эту функцию

РЕДАКТИРОВАТЬ: для Standard Edition есть Отслеживание изменений .

Смежные вопросы: Аудит изменений данных SQL Server

0 голосов
/ 30 ноября 2010

Изменения в форме обновлений таблиц в форме обновлений / вставок / удалений можно отслеживать с помощью триггера, который обновляет отметку времени в основной таблице.Мы должны вести таблицу, содержащую название таблиц и время последнего обновления.Любое изменение в отдельной таблице будет обновлять эту таблицу в соответствующей строке!

Изменения схемы также могут обрабатываться с помощью триггеров, которые обновляют таблицу таблиц.Может быть, в вашем случае у нас могут быть дополнительные столбцы с типом данных BOOL, которые будут указывать, было ли изменение в схеме или данных.

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