2008-09-16 2 views
6

Как узнать дату последнего изменения объекта MS SQL Server 2000?Дата последнего изменения объекта

Мне нужно получить список всех видов, процессов, функций и т. Д., Которые были изменены с 15 августа. В sysObjects я вижу, что объекты даты были созданы, но мне нужно знать, когда они были в последний раз изменены.

NB: это база данных SQL 2000.

+3

Для других, кто мог бы найти это сообщение и искать то, что я выбрал * из заказа sys.all_objects от edit_date desc, получает эту информацию в SQL 2008 R2 – 2012-11-30 18:41:26

ответ

6

Обратите внимание, что SQL Server фактически делает не запись последней даты изменения. Он не существует ни в каких системных таблицах.

Отчет о истории изменений схемы фактически построен из Default Trace. Поскольку многие администраторы (и веб-хосты) отключили это, это может не сработать для вас. У Бака Вуди было хорошее объяснение того, как работает этот отчет here. Данные также временные.

По этой причине вы никогда не должны ссылаться на отчет истории изменений схемы. Альтернативы:

  • Используйте DDL Triggers, чтобы зарегистрировать всю модификацию схемы в таблице по вашему выбору.
  • Принудительный протокол, когда виды и процессы никогда не изменяются, они только отбрасываются и воссоздаются. Это означает, что дата создания также будет последней обновленной датой (это явно не работает с таблицами).
  • Бдительный вариант ваших объектов и схемы SQL в исходном управлении.

-

Edit: видел, что это SQL 2000. Это исключает По умолчанию трассировки и триггера DDL. У вас остался один из самых утомительных вариантов, перечисленных выше.

+0

спасибо за предложения, которые помогут нам двигаться вперед. Думаю, я застрял для получения ретроспективного списка на данный момент. – 2008-09-17 00:28:11

12

Я знаю, что это немного старое, но можно просмотреть последнюю измененную дату хранящихся проков и функций с этим запросом:

USE [Your_DB]  
SELECT * FROM INFORMATION_SCHEMA.ROUTINES 

Просто подумал, что неплохо было бы упомянуть об этом, так как Я искал это решение, и этот поток вводил в заблуждение.

+0

Именно то, что я искал, большое спасибо! – AFract 2014-02-27 14:21:48

4

Я получил подтвержденный ответ на выше любую процедуру истории для даты изменения с ниже запросом

Шаг -1 Выполните процедуру на DB

SELECT name, create_date, modify_date 
FROM sys.objects 
WHERE type = 'p' 

Шаг -2 Затем скопируйте текст в Excel с заголовки

выберите маршрут coloumn, а затем вставьте точное имя процедуры в окно^F и нажмите enter , вы получите точную дату изменения.

С уважением, Судир Пуна

1

Это не всегда правильно, потому что modify_date является дата объектом последнего изменения с помощью оператора ALTER. Если объект представляет собой таблицу или представление, изменение_дат также изменяется при создании или изменении кластеризованного индекса в таблице или представлении.