2011-08-24 21 views

cevap

6

Bu yaratmasıyla birlikte saklanır prosedürlerin tüm listeler ve değiştirilme tarihleri:

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

DÜZENLEME: Her zaman için ya create_date sonra eşit olacaktır modify_date beri ... Ayrıca bu sadece olabilir dikkat Belirtilen başka bir cevap olarak sys.procedures kullanın.

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

yana, muhtemelen günün saati kısmını soymak için daha iyi bir fikirdir. –

2

bu deneyin. Routines son iki sütun düzenlendi edilmektedir onlara

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

biri ve LAST_MODIFIED olduğunu.

+1

OP "Dün" anlamına geldiğinden, tüm günü eklemek daha iyi bir fikir olabilir. –

5

Information_Schema çeşitli nesneleri gözden yardımcı olmak için çeşitli görünümleri vardır:

4

kullanın sys.procedures içerir. sys.objects'dan daha doğrudan (türüne filtre uygulamanız gerekmez) ve - INFORMATION_SCHEMA'dan daha az taşınabilirken - sys. katalog görünümleri bakımı sürdürülmeye devam eder ve yeni özellikler hakkında bilgilerle genişletilirken, INFORMATION_SCHEMA.

Örneğin, gece yarısı oluşturulan veya dünden beri değiştirilen kayıtlı tüm prosedürleri bulmak için: OP "Dün" anlamına gelir

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; 
İlgili konular