web-dev-qa-db-fra.com

Comment vérifier la date de la dernière modification dans la procédure stockée ou la fonction dans le serveur SQL

Je dois vérifier quand la fonction a été modifiée la dernière fois. Je sais comment vérifier la date de création (c'est dans la fenêtre des propriétés de la fonction dans SQL Server Management Studio).
J'ai constaté que dans SQL Server 2000, il n'était pas possible de vérifier la date de modification (consultez cet article: Est-il possible de déterminer quand une procédure stockée a été modifiée pour la dernière fois dans SQL Server 2000? )

Est-il possible de le vérifier dans SQL Server 2008? MS ajoute-t-il une nouvelle fonctionnalité dans les tables système permettant de la vérifier?

137
Marek Kwiendacz
SELECT name, create_date, modify_date 
FROM sys.objects
WHERE type = 'P'
ORDER BY modify_date DESC

La type d'une fonction est FN plutôt que P pour la procédure. Ou vous pouvez filtrer sur la colonne du nom.

298
Chris Diver

Essayez ceci pour les procédures stockées:

SELECT name, create_date, modify_date
FROM sys.objects
WHERE type = 'P'
AND name = 'myProc'
33
openshac

C'est la bonne solution pour trouver une fonction:

SELECT name, create_date, modify_date
FROM sys.objects
WHERE type = 'fn'
AND name = 'fn_NAME'
10
zuhaib hyder

J'ai trouvé cette liste comme la nouvelle technique

C'est très détaillé

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 
6
Arun Prasad E S

Pour SQL 2000, j'utiliserais:

SELECT name, crdate, refdate 
FROM sysobjects
WHERE type = 'P' 
ORDER BY refdate desc
3
Simon

Dans la dernière version (2012 ou plus), nous pouvons obtenir les détails de procédure stockée modifiés en utilisant cette requête.

SELECT create_date, modify_date, name FROM sys.procedures 
ORDER BY modify_date DESC
1
LTA
SELECT *
FROM sys.objects
WHERE type IN ('FN', 'IF', 'TF') 
AND name = 'dgdsgds'
0
Kris K