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?
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.
Versuchen Sie dies für gespeicherte Prozeduren:
SELECT name, create_date, modify_date
FROM sys.objects
WHERE type = 'P'
AND name = 'myProc'
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'
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
Für SQL 2000 würde ich verwenden:
SELECT name, crdate, refdate
FROM sysobjects
WHERE type = 'P'
ORDER BY refdate desc
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
SELECT *
FROM sys.objects
WHERE type IN ('FN', 'IF', 'TF')
AND name = 'dgdsgds'