2011-08-24 21 views
7

से हाल ही में जोड़े गए संग्रहित प्रोसेस की सूची कैसे प्राप्त करें, क्या SQL सर्वर डेटाबेस से संग्रहीत प्रोसेस की एक सूची प्राप्त करना संभव है जहां कल/आखिरी अपडेट की गई तिथि> कल?SQL सर्वर डेटाबेस

sys.sql_modules एक तिथि के लिए प्रतीत नहीं होता। इसे कहीं और संग्रहीत किया जाना चाहिए।

उत्तर

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 का उपयोग करें।

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

के बाद से ओपी "कल" ​​को संदर्भित करता है, यह शायद एक बेहतर विचार दिन के समय भाग पट्टी है। –

2

इस प्रयास करें। Routines उन्हें

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

में से एक अंतिम दो कॉलम रहे हैं के लिए बनाया गया है और LAST_MODIFIED है।

+1

चूंकि ओपी "कल" ​​को संदर्भित करता है, इसलिए शायद पूरे दिन को शामिल करना बेहतर विचार है। –

5

Information_Schema मदद करने के लिए विभिन्न वस्तुओं की समीक्षा कई दृश्य होते हैं:

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; 
संबंधित मुद्दे