我通常不使用链接服务器,所以我不确定我在这里做错了什么。
这样的查询将适用于sql 2000中链接的foxpro服务器:
EXEC('Select * from openquery(linkedServer, ''select * from linkedTable'')')然而,从互联网上的研究来看,这样的东西也应该是可行的:
Select * from linkedserver...linkedtable但是我收到了这个错误:
Server: Msg 7313, Level 16, State 1, Line 1
Invalid schema or catalog specified for provider 'MSDASQL'.
OLE DB error trace [Non-interface error: Invalid schema or catalog specified for the provider.].我知道它应该是ServerAlias.Category.Schema.TableName,但是如果我在链接服务器上运行sp_ tables _ex,对于所有表的类别,我只得到数据文件所在位置的网络路径,模式为null。
此服务器设置是否不正确?或者我正在尝试做的事情是不可能的?
发布于 2009-06-10 14:01:46
来自MSDN
在链接服务器上处理对象时,
始终使用完全限定名称。不支持对链接服务器中表的dbo所有者名称进行隐式解析。
不能依赖'..‘的隐式架构名称解析。链接服务器的表示法。对于FoxPro‘服务器’,你将不得不使用数据库和模式,因为它们映射到你使用的驱动程序中的FoxPro对应项(我认为它们映射到文件夹和文件名,但我已经10多年没有使用ISAM文件驱动程序了)。
发布于 2009-06-10 13:43:09
我认为您需要明确说明查询的链接服务器部分中的资源,例如:
EXEC SomeLinkedServer.Database.dbo.SomeStoredProc换句话说,在这种情况下,仅仅把它们分散开来是行不通的,你必须更具体。
发布于 2009-06-10 13:44:21
实际上是:
ServerAlias.Catalog.Schema.LinkedTable
Catalog是您在链接服务器上查询的数据库,catalog是远程表的目录。因此有效由四部分组成的名称将如下所示
ServerAlias.AdventureWorks.HumanResources.Employee
或
ServerAlias.MyDB.dbo.MyTable
https://stackoverflow.com/questions/975665
复制相似问题