2009-02-13 9 views
7

क्या कोई अन्य सर्वर से कनेक्ट करने के लिए कोई TSQL कमांड है?किसी अन्य सर्वर से कनेक्ट करने के लिए TSQL कमांड (SQL सर्वर 2005)

या जब आप क्वेरी विंडो में हों, तो किसी अन्य सर्वर से कनेक्ट करने के लिए कीबोर्ड शॉर्टकट्स क्या हैं और एक क्वेरी विंडो दिखाई दे रही है?

मैंने देखा है कि Ctrl + N कुछ स्क्रीनों में सर्वर संवाद से कनेक्ट हो गया है, लेकिन जब मैं पहले से ही क्वेरी विंडो में हूं और Ctrl + N दबाता हूं तो यह सिर्फ एक और क्वेरी विंडो खुलता है।

यूएसई कमांड आपको मौजूदा सर्वर पर अन्य डेटाबेस से कनेक्ट करने देता है लेकिन क्या कोई ऐसा आदेश है जो आपको किसी अन्य सर्वर से कनेक्ट करने देता है?

मैं एसक्यूएल सर्वर 2005

+0

आप सर्वर आपके वर्तमान क्वेरी खिड़की के खिलाफ निष्पादित हो रहा है बदलने के लिए, या अपने वर्तमान क्वेरी एक अलग सर्वर से डेटा प्राप्त है, लेकिन वर्तमान से एक के लिए जुड़े रहने देख रहे हैं? – SqlRyan

उत्तर

5

आपको लिंक किए गए सर्वर

OpenDataSource(provider_name, init_string) 

साथ OpenDataSource उपयोग कर सकते हैं उदाहरण के

SELECT 
FirstName, 
Gender 
FROM 
OpenDataSource (
'SQLOLEDB', 
'DataSource = NOLI\SQL2;UserID=myUserID;Password=myPassword' 
).Organisation.dbo.Employees 

के लिए से MSDN -

OPENROWSET समारोह की तरह, OPENDATASOURCE केवल का उल्लेख होना चाहिए OLE DB डेटा स्रोत है कि ए फिर से का उपयोग किया गया। किसी भी डेटा स्रोत के लिए एक लिंक किए गए सर्वर को परिभाषित करें, कई बार अधिक से अधिक। न तो OPENDATASOURCE और OPENROWSET लिंक-सर्वर की सभी कार्यक्षमता प्रदान करता है जैसे सुरक्षा प्रबंधन और कैटलॉग जानकारी पूछने की क्षमता। सभी कनेक्शन पासवर्ड सहित पासवर्ड, प्रत्येक बार प्रदान किया जाना चाहिए जब OPENDATASOURCE कहा जाता है।

1

उपयोग कर रहा हूँ तुम एक Linked Server बनाने और OPENQUERY साथ उपयोग करें या OPENROWSET का उपयोग करने का विकल्प है।

यदि आप किसी क्वेरी विंडो से कनेक्शन बदलना चाहते हैं, तो क्वेरी विंडो में राइट-क्लिक करें और कनेक्शन बदलें का चयन करें।

1

एक बार जब आप सेटअप किसी लिंक किए गए सर्वर आप पूरी तरह से [सर्वर] से हर तालिका/दृश्य

चयन * योग्यता से इसके खिलाफ TSQL चला सकते हैं। [डाटाबेस]। [मालिक] .table

इस तरह आप किसी भी क्वेरी विंडो से किसी भी सर्वर से बात कर सकते हैं - अगर आपको यही चाहिए। अधिकांश एसक्यूएल में आप केवल टेबल की आपूर्ति करते हैं, क्योंकि बाकी सब कुछ डिफॉल्ट होता है। इस तकनीक का उपयोग करके आप सर्वर के बीच खंडों को भी लिख सकते हैं, वितरित लेनदेन समन्वयक (एमएसडीटीसी) के रूप में कम चल रहा है। निस्संदेह आप इसे साबित करने के लिए केवल एक बार ऐसा करेंगे, क्योंकि यह अविश्वसनीय रूप से धीरे-धीरे चलता है।

6

या तो मेनू के माध्यम से ...

क्वेरी> कनेक्शन>

या माउस के माध्यम से बदलें कनेक्शन ...

(राइट क्लिक करें माउस बटन) कनेक्शन> कनेक्शन> बदलें

दोनों ऊपर कनेक्ट डेटाबेस इंजन संवाद बॉक्स में

पॉप आपके सर्वर के बीच कुछ TSQL तो लिखने के लिए इच्छुक हैं आप ' किसी लिंक किए हुए सर्वर बनाने और उसके बाद अपने एसक्यूएल में OPENQUERY या OPENROWSET उपयोग करने के लिए की आवश्यकता होगी। वहाँ ऐसा करने के तरीके पर पिछले पोस्ट में कुछ अच्छा संकेत दिए गए हैं।

4

कुछ अन्य विकल्प जो आप जो करना चाहते हैं उसके आधार पर व्यवहार्य हो सकते हैं SQLCMD मोड और पंजीकृत सर्वर हैं।

SQLCMD मोड SSMS में क्वेरी मेनू के तहत सक्रिय किया जा सकता। एक बार जब यह सक्षम है आप इसके साथ कुछ इस तरह कर सकते हैं:

:CONNECT SERVER1 
SELECT @@SERVERNAME; 
GO 

:CONNECT SERVER2 
SELECT @@SERVERNAME; 
GO 
पंजीकृत सर्वर के साथ

(दृश्य मेनू के अंतर्गत होना चाहिए) आप सर्वर के समूहों गुटों के खिलाफ प्रश्नों सभी को एक बार सेट और निष्पादित कर सकते हैं।

दोनों कई डीबीए परिदृश्यों में उपयोगी हो सकते हैं, लेकिन मुझे यकीन नहीं है कि यह आपके बाद क्या है।

+0

, स्टेटमेंट टर्मिनेटर और बैच निष्पादन आदेश जोड़ने के लिए संपादित अन्यथा मेरी पहले उदाहरण में दोनों आदेशों 2 सर्वर के विरुद्ध क्रियान्वित कर रहे हैं। –