首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >T-SQL 2000:四部分表名

T-SQL 2000:四部分表名
EN

Stack Overflow用户
提问于 2009-06-10 13:37:33
回答 3查看 973关注 0票数 0

我通常不使用链接服务器,所以我不确定我在这里做错了什么。

这样的查询将适用于sql 2000中链接的foxpro服务器:

代码语言:javascript
复制
EXEC('Select * from openquery(linkedServer, ''select * from linkedTable'')')

然而,从互联网上的研究来看,这样的东西也应该是可行的:

代码语言:javascript
复制
Select * from linkedserver...linkedtable

但是我收到了这个错误:

代码语言:javascript
复制
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。

此服务器设置是否不正确?或者我正在尝试做的事情是不可能的?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-06-10 14:01:46

来自MSDN

在链接服务器上处理对象时,

始终使用完全限定名称。不支持对链接服务器中表的dbo所有者名称进行隐式解析。

不能依赖'..‘的隐式架构名称解析。链接服务器的表示法。对于FoxPro‘服务器’,你将不得不使用数据库和模式,因为它们映射到你使用的驱动程序中的FoxPro对应项(我认为它们映射到文件夹和文件名,但我已经10多年没有使用ISAM文件驱动程序了)。

票数 1
EN

Stack Overflow用户

发布于 2009-06-10 13:43:09

我认为您需要明确说明查询的链接服务器部分中的资源,例如:

代码语言:javascript
复制
EXEC SomeLinkedServer.Database.dbo.SomeStoredProc

换句话说,在这种情况下,仅仅把它们分散开来是行不通的,你必须更具体。

票数 0
EN

Stack Overflow用户

发布于 2009-06-10 13:44:21

实际上是:

ServerAlias.Catalog.Schema.LinkedTable

Catalog是您在链接服务器上查询的数据库,catalog是远程表的目录。因此有效由四部分组成的名称将如下所示

ServerAlias.AdventureWorks.HumanResources.Employee

ServerAlias.MyDB.dbo.MyTable

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/975665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档