Sql server 2008 设置与DB2的SSMS链接服务器
我有一个本地SQL Server实例,在该实例上我创建了一个到DB2数据库的链接服务器连接,名为“DB2OurDatabase”。在创建链接服务器连接时,我指定了一个UID和PWD,我在各种查询工具或应用程序中使用它来查询“[SchemaX].[TableX]” 我似乎成功地创建了链接服务器:在SSMS中的链接服务器节点下创建了一个名为“DB2OurDatabase”的链接服务器节点对象,当我展开它时,我能够看到数据库中的表 当我用鼠标右键单击[SchemaX].[TableX]表并选择 “scripttableas=>selectto==>newwindow”,打开了一个新的查询窗口,其中包含文本Sql server 2008 设置与DB2的SSMS链接服务器,sql-server-2008,db2,ssms,Sql Server 2008,Db2,Ssms,我有一个本地SQL Server实例,在该实例上我创建了一个到DB2数据库的链接服务器连接,名为“DB2OurDatabase”。在创建链接服务器连接时,我指定了一个UID和PWD,我在各种查询工具或应用程序中使用它来查询“[SchemaX].[TableX]” 我似乎成功地创建了链接服务器:在SSMS中的链接服务器节点下创建了一个名为“DB2OurDatabase”的链接服务器节点对象,当我展开它时,我能够看到数据库中的表 当我用鼠标右键单击[SchemaX].[TableX]表并选择 “sc
--[DB2OurDatabase].[DataCenterCityName2_DB2OurDatabase].[SchemaX].[TableX]
contains no columns that can be selected or the current user does not have permissions on that object.
GO
我不明白我是如何创建一个链接服务器的,该服务器可以查看数据库中的表名,但却似乎遇到了似乎缺乏查询表权限的问题,即使我使用的凭据与Squirell SQL查询工具中使用的凭据相同,例如,查询表
在SSMS中,我尝试执行此操作
SELECT *
FROM [DB2OurDatabase].[DataCenterCityName2_DB2OurDatabase].[SchemaX].[TableX]
错误:
味精7314,第16级,状态1,第1行链接服务器“DB2OurDatabase]”的OLE DB提供程序“IBMDADB2”不包含表“DataCenterCityName2\u DB2OurDatabase”“SchemaX”“TableX”。该表不存在,或者当前用户对该表没有权限 我有点惊讶,完全限定的表名包括[DataCenterCityName2_DB2OurDatabase],因为我在设置链接服务器连接时没有指定它,但数据中心城市的名称是正确的,所以我认为这是链接服务器连接成功的进一步标志 尽管如此,我还是尝试执行删除此级别的完全限定表名:
SELECT *
FROM [DB2OurDatabase].[SchemaX].[TableX]
这导致了这个错误
味精208,第16级,状态1,第1行对象名称“DB2OurDatabase.[SchemaX].[TableX]”无效 我需要做什么来创建一个DB2链接服务器,让我查询DB2数据库中的表?以下是我的链接服务器属性:
我还没有研究从Sql Server连接和查询DB2的多种方法,但这很有效:
显然,您通过替换对象名修改了实际命令,因此无法确定,但问题可能是由于使用了带引号的标识符(那些方括号),这本质上使对象名区分大小写。默认情况下,DB2将以大写形式创建对象(表、模式)名称,除非它们被引用<代码>创建表MySchema.MyTable…(无引号)在DB2端将创建表
MySchema.MyTable
,然后从SSMS中引用它作为[MySchema].[MyTable]
(使用带引号的标识符)显然将失败。我删除了括号,然后重试,得到了相同的错误。无论如何,Thx。新的错误消息是否仍然以大写或混合大写显示对象名称?