Comment vérifier la date du dernier changement dans la procédure stockée ou la fonction dans le serveur SQL
je dois vérifier quand la fonction a été changée la dernière fois. Je sais comment vérifier la date de création (elle se trouve dans la fenêtre de propriétés de fonction de SQL Server Management Studio).
J'ai trouvé que dans SQL Server 2000 il n'était pas possible de vérifier modifier la date ( regardez ce post: 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? MME ajouter une nouvelle fonctionnalité dans les tables système qui permet de le vérifier?
7 réponses
SELECT name, create_date, modify_date
FROM sys.objects
WHERE type = 'P'
ORDER BY modify_date DESC
le type
pour une fonction est FN
plutôt que P
pour la procédure. Ou vous pouvez filtrer sur la colonne des noms.
avez-vous essayé:
SELECT name, create_date, modify_date
FROM sys.objects
WHERE type = 'P'
AND name = 'myProc'
C'est la bonne solution.
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 des détails modifiés sur les procédures stockées 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'