首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对象名称<TableName>包含的前缀超过了最大数量。最大值为2

对象名称<TableName>包含的前缀超过了最大数量。最大值为2
EN

Stack Overflow用户
提问于 2014-04-12 03:07:56
回答 1查看 2.8K关注 0票数 0

我正在尝试使用单个查询从不同服务器上的两个表中提取记录。我在select查询中使用以下格式...但我得到的只是上面的错误。

有没有一种方法可以在一个查询中从两个服务器中拉出记录,比如

代码语言:javascript
复制
select * from server1.db1.schema1.table1 s1,server2.db2.schema2.table2 s2 where s1.col1 = s2.col2

我使用的是sybase和rapidsql。

编辑:我使用的是Sybase Adaptive server enterprise 15.5和快速SQL 8.1.0

EN

回答 1

Stack Overflow用户

发布于 2014-04-15 11:43:05

出现语法错误的原因是Sybase ASE不能以这种方式引用外部数据库和表进行查询。查询仅支持语法DATABASE.OWNER.TABLEDATABASE..TABLE

使用Sybase ASE,您可以使用Component Integration Services (CIS)跨多个服务器进行查询。这允许您设置代理表或代理数据库,以提取驻留在远程服务器上的数据。远程服务器需要使用sp_addserver添加到本地服务器,并且应该位于interface/sql.ini中,或者可以通过LDAP访问。

在那里,您必须使用sp_addexternalogin添加远程服务器的登录信息

接下来,您必须连接到远程服务器,并定义代理表或代理数据库。

完成此操作后,只要本地服务器连接到远程服务器,您就可以将代理表/数据库视为系统的本地表/数据库,以便进行查询。

我强烈建议查看上面链接的CIS文档,因为有一些关于设置它的教程。

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

https://stackoverflow.com/questions/23020727

复制
相关文章

相似问题

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