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

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

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

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

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

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


当前回答

我意识到这个问题已经有了答案,但是,我有一个不同的解决方案:

如果您正在编写一个脚本,其中删除了表而没有重新创建它们,那么在稍后尝试引用这些表时,这些表将显示为丢失。

注意:对于经常运行的脚本,这不会发生,但有时使用带有查询的脚本比每次都输入查询要容易得多。

其他回答

你确定有问题的桌子存在吗?

是否刷新了对象资源管理器中的表视图?这可以通过右键单击“tables”文件夹并按F5键来完成。

您可能还需要刷新智能感知缓存。

可以通过以下菜单路径完成:Edit -> IntelliSense -> Refresh Local Cache

我意识到这个问题已经有了答案,但是,我有一个不同的解决方案:

如果您正在编写一个脚本,其中删除了表而没有重新创建它们,那么在稍后尝试引用这些表时,这些表将显示为丢失。

注意:对于经常运行的脚本,这不会发生,但有时使用带有查询的脚本比每次都输入查询要容易得多。

我只需要关闭SMSS并重新打开它。我尝试刷新本地缓存,但没有工作。

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

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

Try:

Edit -> IntelliSense ->刷新本地缓存

这应该会刷新智能感知缓存的数据,以提供输入前支持和执行前错误检测。

注意:您的光标必须位于查询编辑器中,才能显示智能感知菜单。