Как проверить дату последнего изменения хранимой процедуры или функции в SQL-сервере - PullRequest
156 голосов
/ 07 апреля 2011

Мне нужно проверить, когда функция была изменена в последний раз.Я знаю, как проверить дату создания (она находится в окне свойств функции в SQL Server Management Studio).
Я обнаружил, что в SQL Server 2000 невозможно проверить дату изменения (см. Этот пост: Естьможно определить, когда хранимая процедура последний раз изменялась в SQL Server 2000? )

Можно ли проверить ее в SQL Server 2008?Добавляет ли MS какую-то новую функцию в системные таблицы, которая позволяет ее проверять?

Ответы [ 7 ]

330 голосов
/ 07 апреля 2011
SELECT name, create_date, modify_date 
FROM sys.objects
WHERE type = 'P'
ORDER BY modify_date DESC

type для функции FN вместо P для процедуры.Или вы можете отфильтровать по имени столбца.

37 голосов
/ 07 апреля 2011

Попробуйте это для хранимых процедур:

SELECT name, create_date, modify_date
FROM sys.objects
WHERE type = 'P'
AND name = 'myProc'
11 голосов
/ 04 сентября 2012

Это правильное решение для поиска функции:

SELECT name, create_date, modify_date
FROM sys.objects
WHERE type = 'fn'
AND name = 'fn_NAME'
6 голосов
/ 20 октября 2016

Я нашел это в списке как новый метод

Это очень подробно

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 
3 голосов
/ 19 августа 2013

Для SQL 2000 я бы использовал:

SELECT name, crdate, refdate 
FROM sysobjects
WHERE type = 'P' 
ORDER BY refdate desc
1 голос
/ 26 сентября 2016

В последней версии (2012 или более) мы можем получить измененную информацию о хранимой процедуре, используя этот запрос

SELECT create_date, modify_date, name FROM sys.procedures 
ORDER BY modify_date DESC
0 голосов
/ 01 мая 2017
SELECT *
FROM sys.objects
WHERE type IN ('FN', 'IF', 'TF') 
AND name = 'dgdsgds'
...