2012-05-14 16 views
5

मुझे कुछ समय के लिए पता चला है कि SQL सर्वर प्रबंधन स्टूडियो में "व्यू निर्भरता" सुविधा बेकार है क्योंकि यह शायद ही कभी सभी निर्भरताओं को वापस लाती है, हालांकि, क्या कोई बेहतर विकल्प है? यह स्पष्ट कारणों के लिए एक बहुत ही शक्तिशाली विशेषता है, लेकिन यदि आप परिणामों पर भरोसा नहीं कर सकते हैं (जैसा कि माइक्रोसॉफ्ट के मामले में है), तो आपको सुरक्षित होने के लिए किसी भी तरह हाथ से सभी काम करना होगा।एसक्यूएल सर्वर प्रबंधन स्टूडियो के लिए वैकल्पिक "व्यू निर्भरता"

ऐसा लगता है कि यह कार्यान्वित करना बहुत आसान होगा, क्या वहां कोई उपकरण हैं जो प्रभावी ढंग से इसे संभालने में सक्षम हैं?

एक साइड नोट के रूप में, क्या किसी को पता है कि "व्यू निर्भरता" के साथ क्या गलत है? क्या निर्भरता की एक विशिष्ट श्रेणी है जिसे पहचानने में परेशानी है?

+0

http://sqlblog.com/blogs/aaron_bertrand/archive/2008/09/09/keeping-sysdepends-up-to-date-in-sql-server-2008।एएसपीएक्स –

उत्तर

2

रेड गेट में SQL Dependency Tracker नामक टूल है जो बहुत अच्छी तरह से काम करता है।

आप sys.sql_dependencies दृश्य के विरुद्ध एक प्रश्न भी लिख सकते हैं जो कुछ बुनियादी जानकारी देगा। इस के समान:

SELECT o.name, o.type_desc, p.name, p.type_desc 
FROM sys.sql_dependencies d 
INNER JOIN sys.objects o 
    ON d.object_id = o.object_id 
INNER JOIN sys.objects p 
    ON d.referenced_major_id = p.object_id 

यहाँ खोजने निर्भरता के बारे में एक लेख है:

Finding dependencies in SQL Server 2005

+0

हालांकि यह सवाल का जवाब देगा, यह ऊपर उल्लिखित एकल आवश्यकता को पूरा करने के लिए एक बहुत ही मजबूत निवेश की तरह लगता है (जाहिर है इस उपकरण की अन्य विशेषता है जो शायद इसे मूल्य के लायक बनाती है)। कोई अन्य (सस्ता) सुझाव? –

+2

मैंने अपने उत्तर को अपडेट किया है, आप एक निर्भरता के साथ उपयोग कर सकते हैं कि आप निर्भरता के खिलाफ उपयोग कर सकते हैं – Taryn

2

आप एसक्यूएल खोजें, जो वस्तु के नाम और शाब्दिक परिभाषाओं की एक शाब्दिक खोज करता है का उपयोग कर की कोशिश कर सकते। लाभ यह है कि यह गतिशील एसक्यूएल संदर्भ भी उठाएगा, और दोष यह है कि यह झूठी सकारात्मक चुन सकता है क्योंकि यह वास्तविक निर्भरता पेड़ के आधार पर खोज नहीं कर रहा है।

http://www.red-gate.com/products/sql-development/sql-search/

एक और लाभ यह है कि यह वर्तमान में नि: शुल्क है।

+1

ठीक है, स्पष्ट होने के लिए, यह सभी गतिशील एसक्यूएल संदर्भों को नहीं उठाएगा, खासतौर पर उन लोगों पर जहां निर्भर वस्तु (ओं) को पारित किया जा सकता है पैरामीटर और अनुप्रयोग (ओं) में या अन्य प्रक्रियाओं में तार के रूप में परिभाषित किया गया है। –

+0

सच है। कोई विशेष जादू नहीं है जिससे यह ऑब्जेक्ट संदर्भों का पुनर्निर्माण करने के लिए टी-एसक्यूएल को पार करता है ... यह कुछ होगा। मुझे लगता है कि इस सुविधा को SQL प्रोफाइलर के साथ काम कर रहे SQL खोज की आवश्यकता होगी। दिलचस्प विचार –

0

यहां एक तीन-चरण प्रक्रिया है। अभी भी सही नहीं है, लेकिन कुछ अंतराल को खत्म करने में मदद करता है। मान लें कि आप "विजेट यूज़र" तालिका में निर्भरताओं की तलाश में हैं:

सबसे पहले, तालिका के संदर्भ में होने वाले सभी मॉड्यूल की एक सूची प्राप्त करें। आउटपुट क्वेरी को टेक्स्ट पर आउटपुट करें:

select 'EXEC sys.sp_refreshsqlmodule ''dbo.' + OBJECT_NAME(m.object_id) + '''' 
from sys.sql_modules m 
where m.definition like '%WidgetUser%' 

अगला, उस आउटपुट टेक्स्ट को पेस्ट करें और अपडेट चलाएं। यह हो जाएगा कुछ की तरह:

EXEC sys.sp_refreshsqlmodule 'dbo.up_WidgetUser_Select' 
EXEC sys.sp_refreshsqlmodule 'dbo.up_WidgetUser_Update' 
EXEC sys.sp_refreshsqlmodule 'dbo.WidgetUserView' 
EXEC sys.sp_refreshsqlmodule 'dbo.ufx_WidgetUser_Fooinize' 
... 

अब जब कि अपने निर्भरता हैं अप-टू-डेट, चलाने sp_depends:

EXEC sp_depends @objname = N'dbo.WidgetUser' 
4

देर एक लेकिन उम्मीद है कि उपयोगी के बाद से सिफारिश की उपकरण नि: शुल्क है ...

मैं मैं डेविड को एक समान टूल का उपयोग कर रहा हूं - ApexSQL Search। वे दावा करते हैं कि उनकी अपनी निर्भरता ट्रैकिंग तंत्र है जो गतिशील एसक्यूएल के अलावा सब कुछ के लिए काम करता है।

मैं विस्तार से परीक्षण नहीं किया यह हालांकि ...

अस्वीकरण पुष्टि करने के लिए: मैं इस कंपनी से संबद्ध नहीं कर रहा हूँ, लेकिन मैं अक्सर अपने उपकरणों का उपयोग करते हैं।

संबंधित मुद्दे