wake-up-neo.com

So überprüfen Sie das Datum der letzten Änderung in einer gespeicherten Prozedur oder Funktion in SQL Server

Ich muss überprüfen, wann die Funktion zuletzt geändert wurde. Ich kann das Erstellungsdatum überprüfen (es befindet sich im Fenster mit den Funktionseigenschaften in SQL Server Management Studio).
Ich habe festgestellt, dass es in SQL Server 2000 nicht möglich war, das Änderungsdatum zu überprüfen (siehe diesen Beitrag: Kann festgestellt werden, wann eine gespeicherte Prozedur zuletzt in SQL Server 2000 geändert wurde? )

Kann ich es in SQL Server 2008 überprüfen? Fügt MS in Systemtabellen eine neue Funktion hinzu, mit der es überprüft werden kann?

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

Die type für eine Funktion ist FN und nicht P für die Prozedur. Oder Sie können nach der Namensspalte filtern.

298
Chris Diver

Versuchen Sie dies für gespeicherte Prozeduren:

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

Dies ist die richtige Lösung, um eine Funktion zu finden:

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

Ich fand das als die neue Technik aufgelistet

Das ist sehr detailliert

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

Für SQL 2000 würde ich verwenden:

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

In der neuesten Version (2012 oder höher) können wir mit dieser Abfrage geänderte gespeicherte Prozedurdetails erhalten

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