我正在尝试从SSIS调用存储过程。
代码的一行是
select *
FROM dbo.syn_tab_myTable
我实际上可以看到此dbo.syn_tab_myTable
位于我的Synonyms
文件夹中。但是,我有以下错误:
错误:SQL Build中的0xC002F210 tab_Stats,执行SQL任务:正在执行 查询" build.proc_build_stats?"失败,出现以下错误: "同义词' dbo.syn_tab_myTable'是指无效的对象。"。可能 失败原因:查询问题," ResultSet"财产没有设定 正确,参数设置不正确,或连接未建立 正确。
然后我刚开始一个新的查询,我再次进行select
操作,但我仍然得到了这个:
消息5313,等级16,状态1,行1同义词' dbo.syn_tab_myTable' 是指无效的对象。
同一个文件夹中还有其他同义词,当我输入名称时,其中一些同义词出现在下拉列表中,其中一些不是。
我不知道造成这个问题的原因。请帮忙!感谢。
答案 0 :(得分:2)
同义词引用的对象发生了某些变化。运行这个: -
SELECT * FROM sys.synonyms WHERE name = 'syn_tab_myTable'
并检查输出中的base_object_name列,然后检查正在引用的对象是否仍然存在。
答案 1 :(得分:0)
右键单击同义词,选择拖放并创建,然后仔细检查脚本。我的手指很胖,尽管它创建了同义词,但它所寻找的视图并不存在。我修复了脚本,重新运行,现在生活又好了。
答案 2 :(得分:0)
您的查询是正确的,请确保您已连接到正确的服务器和数据库。右键单击存在同义词的数据库,选择新查询,然后键入您的语法。您得到的对象无效,因为该对象也不存在于您所连接的服务器/数据库中。
另一个答案 SELECT * FROM sys.synonyms WHERE name = 'syn_tab_myTable
也是有效的。此外,您可以发出
SELECT * FROM sys.synonyms
查看已连接数据库上的所有同义词以及它们指向的位置,这非常有用。