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?
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.
Essayez ceci pour les procédures stockées:
SELECT name, create_date, modify_date
FROM sys.objects
WHERE type = 'P'
AND name = 'myProc'
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'
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
Pour SQL 2000, j'utiliserais:
SELECT name, crdate, refdate
FROM sysobjects
WHERE type = 'P'
ORDER BY refdate desc
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
SELECT *
FROM sys.objects
WHERE type IN ('FN', 'IF', 'TF')
AND name = 'dgdsgds'