我正在尝试为新创建的数据库创建存储过程。然而,SSMS智能感知不能识别超过一半的已创建的表。

例如,在表的左边这一列,我有一个表dbo。当我在新的查询窗口中输入“dbo.”时,没有列出那个表,实际上37个表中只列出了17个。

我看不出智能感知和非智能感知列出的表格有什么不同。如果我手动输入dbo。房间,它是下划线,有一个错误

无效对象名称“dbo.Room”…

我是不是在摆桌子的时候漏掉了什么?

更新:我已经尝试刷新表列表(几次)


当前回答

在我的例子中,我试图修改数据库中不存在的存储过程,在创建它并刷新本地缓存之后,它工作了

其他回答

在我的例子中,智能感知缓存为一个完全不同的数据库列出对象信息。如果我单击SSMS中的“New Query”按钮,它将打开一个对服务器上默认编目的查询,并且该查询编辑器将始终只使用该数据库。刷新缓存不会改变任何东西。重新启动SSMS并没有改变任何东西。改变数据库并没有改变任何东西。

我最终通过右键单击我实际想要使用的数据库并从上下文菜单中选择“New query”来创建一个查询。现在SSMS使用正确的对象进行智能感知。

确保选中的DB就是表所在的DB。我在Master上运行脚本。在我的例子中,我必须切换到hr_db。

新手的错误但是,可以帮助别人。

在azure data studio中按“cmd+shift+p”并输入“intellisense”,然后你会看到一个刷新智能感知缓存的选项。

一旦你创建了一个新的SQL Server对象,你新创建的对象不会在智能本地缓存中得到更新,因此,它会在该对象下面显示红线。所以你只需要刷新SSMS智能本地缓存,一旦你刷新它,智能将自动在缓存中添加新创建的对象,红线将消失。试试这个

编辑->智能感知->刷新本地缓存或按Ctrl + Shift + R

你尝试了吗:右键单击数据库,然后单击“刷新”