0

我有一个设置为 ServerX 的数据库连接管理器。在 ServerX 上,我设置了一个名为 ServerY 的链接服务器。

我在 ServerX 上运行此查询,它有效

select * from 
[Serverx].[database1].[dbo].[Table1] A
left join [Servery].[database2].[dbo].[Table2] B
on A.[DNum]=B.[DNum]

我将它放在我的 PC 上而不是 ServerX 上的 SSIS 包中的执行 SQL 任务中。我运行它,它给出了这个错误:

任务 10 小时出错 - 检查缺少的交易 [OLE DB 源 [1]]:SSIS 错误代码 DTS_E_OLEDBERROR。发生 OLE DB 错误。错误代码:0x80040E14。OLE DB 记录可用。源:“Microsoft SQL Server Native Client 10.0” Hresult:0x80040E14 描述:“链接服务器“Server_Y”的 OLE DB 提供程序“SQLNCLI10”不包含表“”database2”。“dbo”。“Table2”。表要么不存在,要么当前用户对该表没有权限。"。

该查询适用于 ServerX,但不适用于我的 PC,它使用远程数据库连接到服务器上的数据库或使用 SSIS 中的 Execute SQL 任务。

我错过了什么吗?请帮忙 ?

4

1 回答 1

1

正如错误所说:

该表不存在或当前用户对该表没有权限

因为您可以在 ServerX 上运行查询,所以您知道链接服务器和 ServerY 上的表存在(假设您在 SSIS 包中正确键入了查询),因此问题很可能是权限。

包中 ServerX 的连接管理器很可能配置不正确:它可能具有错误的登录凭据,或者它甚至可能指向错误的服务器。

于 2012-07-25T19:20:32.503 回答