我正在尝试为新创建的数据库创建存储过程。然而,SSMS智能感知不能识别超过一半的已创建的表。
例如,在表的左边这一列,我有一个表dbo。当我在新的查询窗口中输入“dbo.”时,没有列出那个表,实际上37个表中只列出了17个。
我看不出智能感知和非智能感知列出的表格有什么不同。如果我手动输入dbo。房间,它是下划线,有一个错误
无效对象名称“dbo.Room”…
我是不是在摆桌子的时候漏掉了什么?
更新:我已经尝试刷新表列表(几次)
我正在尝试为新创建的数据库创建存储过程。然而,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
其他回答
我意识到这个问题已经有了答案,但是,我有一个不同的解决方案:
如果您正在编写一个脚本,其中删除了表而没有重新创建它们,那么在稍后尝试引用这些表时,这些表将显示为丢失。
注意:对于经常运行的脚本,这不会发生,但有时使用带有查询的脚本比每次都输入查询要容易得多。
同样的问题,当我用这个语法问题解决。
语法:
Use [YourDatabaseName]
Your Query Here
Try:
Edit -> IntelliSense ->刷新本地缓存
这应该会刷新智能感知缓存的数据,以提供输入前支持和执行前错误检测。
注意:您的光标必须位于查询编辑器中,才能显示智能感知菜单。
即使在安装了SP3到SQL Server 2008企业版之后,这仍然是一个“问题”。大家都说Ctrl+Shift+R帮我解决了这个问题。
在azure data studio中按“cmd+shift+p”并输入“intellisense”,然后你会看到一个刷新智能感知缓存的选项。