आपको sp_addlinkedserver
. का उपयोग करना होगा सर्वर लिंक बनाने के लिए। उपयोग के लिए संदर्भ दस्तावेज देखें। एक बार सर्वर लिंक स्थापित हो जाने के बाद, आप सामान्य रूप से क्वेरी का निर्माण करेंगे, बस दूसरे सर्वर के साथ डेटाबेस नाम को प्रीफ़िक्स करेंगे। आई.ई:
-- FROM DB1
SELECT *
FROM [MyDatabaseOnDB1].[dbo].[MyTable] tab1
INNER JOIN [DB2].[MyDatabaseOnDB2].[dbo].[MyOtherTable] tab2
ON tab1.ID = tab2.ID
एक बार लिंक स्थापित हो जाने के बाद, आप OPENQUERY
. का भी उपयोग कर सकते हैं दूरस्थ सर्वर पर SQL कथन निष्पादित करने के लिए और केवल डेटा आपको वापस स्थानांतरित करने के लिए। यह थोड़ा तेज़ हो सकता है, और यह दूरस्थ सर्वर को आपकी क्वेरी को अनुकूलित करने देगा। यदि आप डेटा को DB1
. पर अस्थायी (या इन-मेमोरी) तालिका में कैश करते हैं ऊपर के उदाहरण में, तो आप इसे मानक तालिका में शामिल होने की तरह ही पूछ सकेंगे। उदाहरण के लिए:
-- Fetch data from the other database server
SELECT *
INTO #myTempTable
FROM OPENQUERY([DB2], 'SELECT * FROM [MyDatabaseOnDB2].[dbo].[MyOtherTable]')
-- Now I can join my temp table to see the data
SELECT * FROM [MyDatabaseOnDB1].[dbo].[MyTable] tab1
INNER JOIN #myTempTable tab2 ON tab1.ID = tab2.ID
कुछ और उदाहरण देखने के लिए OPENQUERY के दस्तावेज़ देखें। ऊपर दिया गया उदाहरण बहुत ही काल्पनिक है। मैं निश्चित रूप से इस विशिष्ट उदाहरण में पहली विधि का उपयोग करूंगा, लेकिन दूसरा विकल्प OPENQUERY
का उपयोग कर रहा हूं यदि आप कुछ डेटा को फ़िल्टर करने के लिए क्वेरी का उपयोग करते हैं तो कुछ समय और प्रदर्शन बचा सकते हैं।