SQL Server SSIS错误:对象名无效-但对象存在,并且查询在SSMS中运行

cmssoen2  于 2023-02-03  发布在  其他
关注(0)|答案(6)|浏览(513)

我目前正在使用Visual Studio 2015(在BIDS 2008中制作)更新我们所有的ETL,并将它们重新部署到运行在SQL Server 2016(最初为2008R2)上的新报告服务器。
在更新其中一个ETL时,我收到此错误:
HRESULT异常:0xC0202009加载临时表时出错[OLE DB源[129]]:SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80004005。OLE DB记录可用。源:"Microsoft SQL Server本机客户端10.0"结果:0x80004005描述:"无效的对象名称'dbo.TimeSheets'。"。

    • 这是我尝试过的**
  • 已检查连接字符串以确保它们正确无误。
  • 已检查架构以确保其存在且正确。
  • 从SSMS运行查询,结果正常。
  • Ctrl + Shift + R可刷新智能感知。
  • 已检查是否存在同名的另一个表。
  • 已重新启动Visual Studio和SSMS。
nafvub8i

nafvub8i1#

我从问题“另一个选项是完全限定表名{database}.{schema}.{table},以确保无论默认目录如何,您都可以查询正确的数据库”的注解中获得了成功的修复。
我正在使用其他数据库,它正在缓存并使用那个DB名称,而不是我更改为的新名称。

ygya80vv

ygya80vv2#

我遇到了同样的问题-我的数据库不知怎么的,没有被拿起。所以我手动添加了数据库并测试了连接,现在它工作正常。

4c8rllxm

4c8rllxm3#

对于SSIS -特别是,如果任何表名为“无效对象名”,则检查为-首先-通过SSMS检查表是否存在,如果不存在,则SSMS〉编辑〉智能感知〉刷新本地缓存
其次-通过“连接管理器”建立DB连接或DB连接已经存在时,检查“表或视图名称”下拉列表中的表名称

ca1c2owp

ca1c2owp4#

我尝试了上面的几个建议,但最终对我有效的是SSDT的关闭和重新打开!

2vuwiymt

2vuwiymt5#

我也有同样的问题。
SSIS和SSMS都拒绝查找表[Stage].[Customer],尽管它确实存在(并且已经存在了相当长的一段时间)。
删除并重新创建表没有任何效果,而且我注意到SSMS的智能感知没有检测到表已经被重新创建(是的,在ctrl+shift+R之后)
最后起作用的是
创建表[阶段].[客户]([ID] INT)
在SSMS中
这导致了一个错误,因为该表已经存在。从那时起,SSMS和SSIS都按预期工作。不知道是什么导致了这个错误,但很难跟踪。

qyzbxkaa

qyzbxkaa6#

同样的问题。
我可以在几个OLE DB目的地的下拉列表中看到相应的表,但它不让我看到Map,并给出以下错误:"HRESULT异常:0xC0202040 ... SSIS错误代码DTS_E_OLEDBERROR。发生OLE DB错误。错误代码:0x80004005英寸。
不起作用的方面:

  • 已重新启动Visual Studio
  • 多次溶液清洁/重建
  • 已重新启动计算机

哪些措施有效:

  • 关闭的Visual Studio
  • 已清除% temp %文件夹中的文件

详细信息在清除我的% temp %文件(那些将删除的文件)时,一个文件夹(VsHub)无法删除,但我能够删除它包含的一些文件。当我再次启动Visual Studio并打开包含这些OLE DB目标的序列时,很明显它正在重新计算XML代码,错误消失了。
希望这能帮到什么人。

相关问题