У меня есть источник ODBC WebTrends на server1 и SQL Server 2005 на server2. Я хочу подключиться к этому ODBC с SQL Server на server2. До сих пор мне удалось подключиться к этому ODBC с SQL Server, который находится на том же сервере, используя следующее определение для связанного сервера:
EXEC sp_addlinkedserver
@server = N'WT_ODBC',
@provider=N'MSDASQL',
@datasrc=N'WT_ODBC_test'
EXEC sp_addlinkedsrvlogin
@rmtsrvname=N'WT_ODBC',
@useself=N'False',
@locallogin=N'sa',
@rmtuser=N'administrator',
@rmtpassword='########'
Я могу запросить этот связанный сервер следующим образом:
SELECT *
FROM OPENQUERY(WT_ODBC, 'SELECT * FROM CompleteViewV85.DownloadedFiles');
Кстати, я не могу запросить его с именем из четырех частей, например:
SELECT *
FROM WT_ODBC.[Complete View V8.5].CompleteViewV85.DownloadedFiles
Я получаю следующую ошибку:
Invalid use of schema or catalog for OLE DB provider "MSDASQL" for linked server
"WT_ODBC". A four-part name was supplied, but the provider does not expose the
necessary interfaces to use a catalog or schema.
... и я проверил, что опция «Только нулевой уровень» не отмечена. Но это не так уж и проблематично, так как первый запрос работает.
Моя проблема - как подключиться к этому ODBC, но с другого сервера? Я пошел на server2, и там в SQL Server я создал следующий связанный сервер:
EXEC sp_addlinkedserver
@server = N'WT_ODBC',
@srvproduct=N'Microsoft OLE DB Provider for ODBC',
@provider=N'MSDASQL',
@datasrc=N'WT_ODBC_test',
@location=N'10.254.251.20'
EXEC sp_addlinkedsrvlogin
@rmtsrvname=N'WT_ODBC',
@useself=N'False',
@locallogin=N'sa',
@rmtuser=N'administrator',
@rmtpassword='########'
.. где я поместил IP-адрес server1 в качестве параметра @location. Связанный сервер, созданный таким образом, не может подключиться к ODBC на server1. Когда я пытаюсь выполнить тот же запрос, который работает на server1, я получаю следующую ошибку:
Cannot get the column information from OLE DB provider "MSDASQL" for linked server
"WT_ODBC".
Помощь? Кто то? Пожалуйста? :)
Заранее спасибо.