Мне нужно проверить, когда функция была изменена в последний раз.Я знаю, как проверить дату создания (она находится в окне свойств функции в SQL Server Management Studio). Я обнаружил, что в SQL Server 2000 невозможно проверить дату изменения (см. Этот пост: Естьможно определить, когда хранимая процедура последний раз изменялась в SQL Server 2000? )
Можно ли проверить ее в SQL Server 2008?Добавляет ли MS какую-то новую функцию в системные таблицы, которая позволяет ее проверять?
SELECT name, create_date, modify_date FROM sys.objects WHERE type = 'P' ORDER BY modify_date DESC
type для функции FN вместо P для процедуры.Или вы можете отфильтровать по имени столбца.
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
В последней версии (2012 или более) мы можем получить измененную информацию о хранимой процедуре, используя этот запрос
SELECT create_date, modify_date, name FROM sys.procedures ORDER BY modify_date DESC
SELECT * FROM sys.objects WHERE type IN ('FN', 'IF', 'TF') AND name = 'dgdsgds'