2011-08-24 45 views

回答

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

由于OP是指“昨天”,它可能是一个更好的主意剥夺一天的部分时间。 –

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 
+1

由于OP提到了“昨天”,所以包含整天可能是一个更好的主意。 –

5

Information_Schema有一些意见,以协助审查各种对象。 Routines是他们

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

之一的最后两列用于创建和LAST_MODIFIED。

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; 
相关问题