如何从SQL Server数据库中获取最近添加的存储过程的列表

Ale*_*x J 7 sql sql-server stored-procedures sql-server-2008

是否有可能从SQL Server数据库获取存储过程的列表,其中创建/上次更新日期>昨天?

sys.sql_modules似乎没有约会.它必须存储在其他地方.

Yuc*_*uck 6

这将列出所有存储过程及其创建和修改日期:

SELECT name, modify_date
FROM sys.objects
WHERE type = 'P'
  AND modify_date >= DATEADD(Day, -1, CONVERT(Date, GETDATE()))
ORDER BY modify_date DESC;
Run Code Online (Sandbox Code Playgroud)

编辑:因为modify_date总是等于或等于create_date...还要注意你可以使用sys.procedures另一个提到的答案.


Rem*_*anu 6

sys.procedures包含create_datemodify_date


Raj*_*ore 5

Information_Schema有几个视图来帮助审查各种对象.Routines是其中之一

select *
from INFORMATION_SCHEMA.ROUTINES
Where CREATED > DATEADD(dd, DATEDIFF(dd, 0, getdate()-1), 0)
Order by CREATED Desc
Run Code Online (Sandbox Code Playgroud)

最后两列用于Created和Last_Modified.


Aar*_*and 5

使用sys.proceduressys.objects比(您不需要对类型进行过滤)更直接,并且 - 虽然比可移植性差INFORMATION_SCHEMA-sys.目录视图继续使用新功能的信息进行维护和扩展,而INFORMATION_SCHEMA不是。

例如,要查找自昨天午夜以来创建或修改的所有存储过程:

DECLARE @yesterday DATE = DATEADD(DAY, -1, CURRENT_TIMESTAMP);

SELECT OBJECT_SCHEMA_NAME([object_id]), name, create_date, modify_date
    FROM sys.procedures 
    WHERE modify_date >= @yesterday
    ORDER BY modify_date DESC;
Run Code Online (Sandbox Code Playgroud)