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

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

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

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

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

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


当前回答

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

其他回答

我在Azure SQL Server上工作。对于存储数据,我使用表值参数 就像

DECLARE @INTERMEDIATE_TABLE3 TABLE { 
     x int;
 }

我发现了写查询时的错误

SELECT
    *
FROM 
    [@INTERMEDIATE_TABLE3]
WHERE 
    [@INTERMEDIATE_TABLE3].[ConsentDefinitionId] = 3

在查询列时,可以使用[@INTERMEDIATE_TABLE3]这样的大括号将其括起来。[ConsentDefinitionId]但是当只引用表值的param时,不应该有params。所以它应该被用作@INTERMEDIATE_TABLE3

所以现在必须将代码更改为

SELECT
    *
FROM 
    @INTERMEDIATE_TABLE3
WHERE 
    [@INTERMEDIATE_TABLE3].[ConsentDefinitionId] = 3

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

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

解决了SSMS 2016。

有一个类似的问题,但智能感知不在编辑菜单。

似乎解决它的是打开和关闭智能感知,右键单击SQL编辑器,然后单击“智能感知启用”。再次右键单击“智能感知启用”,再次打开它。Ctr Q,我也这么做。

这解决了问题,我也知道在编辑菜单上获得智能感知。

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

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