इस प्रश्न को स्टैकओवरफ़्लो पर देखें :
मैं एक EasySoft ODBC ड्राइवर का उपयोग इंटरबेस के लिए SQL Server 2008 R2 एक्सप्रेस उदाहरण को लिंक करने के लिए कर रहा हूं और मुझे दूरस्थ सर्वर से मेटाडेटा प्राप्त करने में कुछ कठिनाई हो रही है। नेट के बारे में देखने से लेकर मुख्य सबस्टेशनों में चार भाग से जुड़े सर्वर सिंटैक्स के बजाय OPENQUERY का उपयोग करने का उल्लेख है।
ईजी मेरा वर्तमान (समस्याग्रस्त) दृष्टिकोण है ...
CREATE VIEW [LIVE].[vwPRDETS] AS SELECT * FROM [LBLIVE]...[PRDETS] WITH (NOLOCK)
लेकिन कुछ तालिकाओं पर मुझे दृश्य को कॉल करते समय त्रुटि मिलती है ...
Msg 7353, स्तर 16, राज्य 1, लाइन 1 OLE DB प्रदाता "MSDASQL" जुड़े सर्वर "LBLIVE" के लिए असंगत मेटाडेटा की आपूर्ति की। निष्पादन के दौरान एक अतिरिक्त स्तंभ की आपूर्ति की गई थी जो संकलन समय पर नहीं मिली थी।
इसके अलावा, कुछ विचार मैं भी नहीं बना सकता क्योंकि मुझे निम्नलिखित मिलते हैं ...
Msg 7315, लेवल 16, स्टेट 1, लाइन 1 लिंक सर्वर "LBLIVE" के लिए OLE DB प्रदाता "MSDASQL" में "SYSDBA" "AUDIT_LBABKP" नाम से मेल खाने वाले कई टेबल हैं।
यद्यपि उल्लिखित तालिकाओं में से केवल एक ही है।
नेट की खोज से वैकल्पिक दृष्टिकोण की तरह लगता है ...
SELECT * FROM OPENQUERY(<linked sevrer>, 'SELECT <column list> FROM MyTable')
तो, मेरा प्रश्न यह है कि अगर मैं अपने दृष्टिकोण में OPENQUERY का उपयोग करता हूं, तो क्या SQL सर्वर Interbase को भेजे जाने वाले SQL को अनुकूलित करने में सक्षम होगा? या वास्तव में दोनों दृष्टिकोणों के बीच बहुत अंतर नहीं है?
यह विषय पर एक क्रॉस है और एक डीबीए के पीओवी को पसंद करेगा।