我在 server1 上有一个 WebTrends ODBC 源,在 server2 上有一个 SQL Server 2005。我想从 server2 上的 SQL Server 连接到这个 ODBC。到目前为止,我设法从同一服务器上的 SQL Server 连接到此 ODBC,使用以下链接服务器定义:
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='########'
..我将 server1 的 IP 地址作为 @location 参数。以这种方式创建的链接服务器无法连接到 server1 上的 ODBC。当我尝试在 server1 上运行相同的查询时,我收到以下错误:
Cannot get the column information from OLE DB provider "MSDASQL" for linked server
"WT_ODBC".
帮助?有人吗?请?:)
提前致谢。