Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 2008 设置与DB2的SSMS链接服务器_Sql Server 2008_Db2_Ssms - Fatal编程技术网

Sql server 2008 设置与DB2的SSMS链接服务器

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

我有一个本地SQL Server实例,在该实例上我创建了一个到DB2数据库的链接服务器连接,名为“DB2OurDatabase”。在创建链接服务器连接时,我指定了一个UID和PWD,我在各种查询工具或应用程序中使用它来查询“[SchemaX].[TableX]”

我似乎成功地创建了链接服务器:在SSMS中的链接服务器节点下创建了一个名为“DB2OurDatabase”的链接服务器节点对象,当我展开它时,我能够看到数据库中的表

当我用鼠标右键单击[SchemaX].[TableX]表并选择

“scripttableas=>selectto==>newwindow”,打开了一个新的查询窗口,其中包含文本

--[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。新的错误消息是否仍然以大写或混合大写显示对象名称?