是否可以从SQL Server数据库获取存储过程的列表,其中创建/上次更新日期>昨天?
sys.sql_modules
似乎没有约会。它必须存储在其他地方。
答案 0 :(得分: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;
编辑:由于modify_date
将始终等于或create_date
之后...另请注意,您可以使用sys.procedures
作为另一个提及的答案。
答案 1 :(得分:6)
sys.procedures
包含create_date
和modify_date
答案 2 :(得分:5)
Information_Schema
有几个视图可帮助审核各种对象。 Routines
就是其中之一
select *
from INFORMATION_SCHEMA.ROUTINES
Where CREATED > DATEADD(dd, DATEDIFF(dd, 0, getdate()-1), 0)
Order by CREATED Desc
最后两列是Created和Last_Modified。
答案 3 :(得分:4)
使用sys.procedures
。比sys.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;
答案 4 :(得分:2)
试试这个:
SELECT name, create_date, modify_date
FROM sys.objects
WHERE type = 'P'
AND modify_date >= DATEADD(day, -1, getdate())
ORDER BY modify_date desc