Как проверить дату последнего изменения в хранимой процедуре или функции в SQL server
Мне нужно проверить, если функция была изменена в последний раз. Я знаю, как проверить дату создания (она находится в окне свойств функции в среде SQL Server Management Studio).
Я обнаружил, что в SQL Server 2000 невозможно проверить дату изменения ( посмотрите на это сообщение: можно ли определить, когда хранимая процедура была в последний раз изменена в SQL Server 2000?)
можно ли проверить это в SQL Server 2008? Добавляет ли MS какую-то новую функцию в системные таблицы, которые позволяют проверить это?
7 ответов:
SELECT name, create_date, modify_date FROM sys.objects WHERE type = 'P' ORDER BY modify_date DESC
The
type
функцииFN
, а неP
для процедуры. Или вы можете фильтровать по столбцу "имя".
вы пробовали:
SELECT name, create_date, modify_date FROM sys.objects WHERE type = 'P' AND name = 'myProc'
Это правильное решение.
SELECT name, create_date, modify_date FROM sys.objects WHERE type = 'fn' AND name = 'fn_NAME'
Я нашел это в списке как новый метод
Это очень подробно
SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE = N'PROCEDURE' and ROUTINE_SCHEMA = N'dbo' order by LAST_ALTERED desc SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE = N'PROCEDURE' and ROUTINE_SCHEMA = N'dbo' order by CREATED desc SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE = N'FUNCTION' and ROUTINE_SCHEMA = N'dbo' order by LAST_ALTERED desc SELECT * FROM INFORMATION_SCHEMA.ROUTINES WHERE ROUTINE_TYPE = N'FUNCTION' and ROUTINE_SCHEMA = N'dbo' order by CREATED desc
для SQL 2000 я бы использовал:
SELECT name, crdate, refdate FROM sysobjects WHERE type = 'P' ORDER BY refdate desc