114

में संग्रहित प्रक्रिया या फ़ंक्शन में अंतिम परिवर्तन की तारीख को कैसे जांचें, मुझे यह जांचने की आवश्यकता है कि आखिरी बार फ़ंक्शन कब बदला गया था। मुझे पता है कि निर्माण तिथि कैसे जांचें (यह SQL सर्वर प्रबंधन स्टूडियो में फ़ंक्शन गुण विंडो में है)।
मैंने पाया कि एसक्यूएल सर्वर 2000 में यह (इस पोस्ट पर नज़र: Is it possible to determine when a stored procedure was last modified in SQL Server 2000?) तिथि को सुधारें जांच करने के लिए संभव नहीं थाSQL सर्वर

यह एसक्यूएल सर्वर 2008 में यह जाँच करने के लिए संभव है? क्या एमएस सिस्टम टेबल में कुछ नई सुविधा जोड़ता है जो इसे जांचने की अनुमति देता है?

उत्तर

243
SELECT name, create_date, modify_date 
FROM sys.objects 
WHERE type = 'P' 

type एक समारोह के लिए FN बजाय प्रक्रिया के लिए P है। या आप नाम कॉलम पर फ़िल्टर कर सकते हैं।

+3

ऐसा लगता है कुछ अनुमतियों का कारण बन सकती है कि परिणाम इस क्वेरी से हटाया जा करने के लिए - भले ही कुछ परिणाम है कि वापसी कर रहे हैं। हमने उपयोगकर्ता प्राधिकरण के आधार पर विभिन्न परिणामों को देखा है - लेकिन मैंने इसे कम नहीं किया है जिसके अधिकारियों में शामिल हैं। लंबी कहानी छोटी: एसए के रूप में इस क्वेरी को चलाएं यदि आप यह सुनिश्चित कर सकते हैं कि आप सबकुछ देख रहे हैं। –

+1

आप वास्तव में सही हैं। http://msdn.microsoft.com/en-us/library/ms190324%28v=sql.105%29.aspx "SQL सर्वर 2005 और बाद के संस्करणों में, कैटलॉग दृश्यों में मेटाडेटा की दृश्यता securables तक सीमित है कि एक उपयोगकर्ता या तो मालिक है या जिस पर उपयोगकर्ता को कुछ अनुमति दी गई है। अधिक जानकारी के लिए, मेटाडाटा दृश्यता कॉन्फ़िगरेशन देखें। " –

+0

बहुत बहुत धन्यवाद! –

29

आप की कोशिश की है:

SELECT name, create_date, modify_date 
FROM sys.objects 
WHERE type = 'P' 
AND name = 'myProc' 
7

यह सही समाधान है।

SELECT name, create_date, modify_date 
FROM sys.objects 
WHERE type = 'fn' 
AND name = 'fn_NAME' 
3

एसक्यूएल 2000 के लिए मैं का प्रयोग करेंगे:

SELECT name, crdate, refdate 
FROM sysobjects 
WHERE type = 'P' 
ORDER BY refdate desc 
+0

2008 के बारे में क्या ..? क्या यह सवाल नहीं है ..? – NREZ

+0

@sREZ प्रश्नों पर sysobjects पर समर्थन 2008 पर समर्थित हैं, इसलिए यह – Paul

1

नवीनतम संस्करण (2012 या अधिक) में हम इस क्वेरी का उपयोग करके संशोधित संग्रहीत प्रक्रिया विस्तार हो

SELECT create_date, modify_date, name FROM sys.procedures 
ORDER BY modify_date DESC 
2

मैं सिर्फ पाया जा सकता , यह नई तकनीक

के रूप में सूचीबद्ध है यह बहुत विस्तृत है

SELECT * FROM INFORMATION_SCHEMA.ROUTINES 
WHERE ROUTINE_TYPE = N'PROCEDURE' and ROUTINE_SCHEMA = N'dbo' 
order by LAST_ALTERED desc 

SELECT * FROM INFORMATION_SCHEMA.ROUTINES 
WHERE ROUTINE_TYPE = N'PROCEDURE' and ROUTINE_SCHEMA = N'dbo' 
order by CREATED desc 


SELECT * FROM INFORMATION_SCHEMA.ROUTINES 
WHERE ROUTINE_TYPE = N'FUNCTION' and ROUTINE_SCHEMA = N'dbo' 
order by LAST_ALTERED desc 

SELECT * FROM INFORMATION_SCHEMA.ROUTINES 
WHERE ROUTINE_TYPE = N'FUNCTION' and ROUTINE_SCHEMA = N'dbo' 
order by CREATED desc 
0
SELECT * 
FROM sys.objects 
WHERE type IN ('FN', 'IF', 'TF') 
AND name = 'dgdsgds' 
+1

काम करेगा, मैं आपके अनुरोध के बारे में कुछ और संदर्भ जोड़ने के लिए अनुरोध कर सकता हूं। कोड-केवल उत्तरों को समझना मुश्किल होता है। यदि आप अपनी पोस्ट में अधिक जानकारी जोड़ सकते हैं तो यह पूछने वाले और भावी पाठकों दोनों की मदद करेगा। – RBT