我有一个设置为ServerX的数据库连接管理器。在ServerX上,我有一个名为ServerY的链接服务器。
我在ServerX上运行此查询,它可以正常工作
select * from
[Serverx].[database1].[dbo].[Table1] A
left join [Servery].[database2].[dbo].[Table2] B
on A.[DNum]=B.[DNum]
我把它放在一个SSIS包中的执行SQL任务中,该包位于我的PC而不是ServerX上。我运行它并且它给出了这个错误:
任务10小时出错 - 检查缺少的交易[OLE DB Source [1]]: SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。 错误代码:0x80040E14。 OLE DB记录可用。资源: “Microsoft SQL Server Native Client 10.0”Hresult:0x80040E14 描述:“OLE DB提供程序”SQLNCLI10“用于链接服务器 “Server_Y”不包含表“”database2“。”dbo“。”Table2“”。 该表不存在或当前用户没有 该表的权限。“。
该查询适用于ServerX,但不能在我的PC上使用与服务器上的数据库的远程数据库连接或使用SSIS中的执行SQL任务。
我错过了什么吗?请帮忙吗?
答案 0 :(得分:1)
正如错误所说:
该表不存在或当前用户没有 该表的权限
因为您可以在ServerX上运行查询,所以您知道链接服务器和ServerY上的表存在(假设您在SSIS包中正确键入了查询),因此问题很可能是权限。
包中ServerX的连接管理器很可能配置不正确:它可能有错误的登录凭据,或者甚至可能指向错误的服务器。