我正在尝试为新创建的数据库创建Stored Procedure
。但是SSMS
intellisense不能识别已创建的表的一半以上。
例如,虽然在表格左下方的列中我有一个表dbo.Room
,当我在新查询窗口中键入“dbo.
”时,该表未列出,实际上只有17表列出了37个表。
我可以看到intellisense列出的表与没有表的表之间没有区别。如果我手动输入dbo.Room,则会加下划线,错误为
无效的对象名称'dbo.Room'..
我在设置表时错过了什么吗?
更新:我已尝试刷新表格列表(多次)
答案 0 :(得分:623)
尝试:
编辑 - > IntelliSense - > 刷新本地缓存
这应该刷新Intellisense缓存的数据,以提供预先支持和执行前错误检测。
注意:您的光标必须位于查询编辑器中才能看到IntelliSense菜单。
答案 1 :(得分:71)
Ctrl + Shift + R 也会刷新management studio 2008中的intellisense。
答案 2 :(得分:34)
创建新的SQL Server对象后,新创建的对象不会在IntelliSence Local Cache中更新,因此,它会在该对象下显示红线。因此,您只需刷新SSMS IntelliSence Local Cache,一旦刷新它,IntelliSence
将自动在缓存中添加新创建的对象,红线将消失。试试这个
Edit -> IntelliSense -> Refresh Local Cache
或 Ctrl + Shift + R
答案 3 :(得分:17)
答案 4 :(得分:17)
就我而言,IntelliSense缓存列出了完全不同的数据库的对象信息。如果我点击了"新查询"在SSMS中的按钮,它将打开一个查询到我在服务器上的默认目录,该查询编辑器将始终只使用该数据库。刷新缓存并没有改变任何东西。重新启动SSMS并没有改变任何事情。更改数据库并没有改变任何内容。
我最后通过右键单击我实际想要使用的数据库并选择" New Query"来创建查询。从该上下文菜单。 现在 SSMS使用正确的IntelliSense对象。
答案 5 :(得分:10)
您确定有问题的表存在吗?
您是否在对象资源管理器中刷新了表格视图?这可以通过右键单击“tables”文件夹并按 F5 键来完成。
您可能还需要重新刷新Intellisense缓存。
这可以通过以下菜单路线来完成:编辑 - >智能感知 - >刷新本地缓存
答案 6 :(得分:8)
解决方案是:
就是这样。
答案 7 :(得分:4)
即使在将SP3安装到SQL Server 2008 Enterprise之后,这仍然是一个“问题”。 Ctrl + Shift + R 就像大家一直在说解决这个问题。
答案 8 :(得分:3)
当我使用此语法问题时,我遇到了同样的问题。
语法:
Use [YourDatabaseName]
Your Query Here
答案 9 :(得分:2)
解决SSMS 2016。
有类似的问题,但智能感知不在编辑菜单中。
似乎解决了什么问题是打开和关闭Intellisens,右键单击SQL编辑器并单击“Intellisense Enabled”。再次右键单击“Intellisense Enabled”再次打开它。 Ctr Q,我也这样做。
这解决了这个问题,而且我也知道在编辑菜单上获取Intellisense。
答案 10 :(得分:1)
您是否尝试过:右键单击数据库,然后单击“刷新”
答案 11 :(得分:1)
我只需要关闭SMSS并重新打开它。我尝试了刷新本地缓存,但没有用。
答案 12 :(得分:1)
我意识到这个问题已经得到解答,但是,我有一个不同的解决方案:
如果您正在编写一个删除表而不重新创建表的脚本,那么如果您稍后尝试引用它们,这些表将显示为缺失。
注意:对于经常运行的脚本不会发生这种情况,但有时候让脚本查询的次数比每次输入更容易。
答案 13 :(得分:1)
在azure数据工作室中,按“ cmd + shift + p”并键入“ intellisense”,然后您将看到一个刷新智能感知缓存的选项。
答案 14 :(得分:0)
我遇到了以下问题: ODBC和ODBC中的SQL-Server-Authentication 和 Firedac-连接
解决方案: 我必须将Param MetaDefSchema设置为sqlserver username: FDConnection1.Params.AddPair('MetaDefSchema',self.FDConnection1.Params.UserName);
维基百科说: MetaDefSchema =默认架构名称。设计时间代码>>排除<< !!对象SQL-Server-Authenticatoinname中的架构名称(如果它等于MetaDefSchema)。
没有设置,自动编码器将创建: dbname.username.tablename->无效的对象名称
通过将MetaDefSchema设置为sqlserver-username: dbname.tablename->有效!
另请参见embarcadero-doc: http://docwiki.embarcadero.com/RADStudio/Rio/en/Connect_to_Microsoft_SQL_Server_(FireDAC)
希望,它可以帮助其他人。
致谢,卢茨
答案 15 :(得分:0)
不要忘记在编写模型后创建迁移
答案 16 :(得分:0)
对我来说,我已经重命名了
[Database_LS].[schema].[TableView]
到
[Database_LS].[Database].[schema].[TableView]
答案 17 :(得分:0)
我正在研究 Azure SQL Server。为了存储我使用表值参数的数据 喜欢
DECLARE @INTERMEDIATE_TABLE3 TABLE {
x int;
}
我发现了写查询的错误
SELECT
*
FROM
[@INTERMEDIATE_TABLE3]
WHERE
[@INTERMEDIATE_TABLE3].[ConsentDefinitionId] = 3
在查询列时,可以用大括号 [@INTERMEDIATE_TABLE3].[ConsentDefinitionId]
包裹它,但是当只引用表值参数时,不应该有参数。所以它应该被用作@INTERMEDIATE_TABLE3
所以现在必须把代码改成
SELECT
*
FROM
@INTERMEDIATE_TABLE3
WHERE
[@INTERMEDIATE_TABLE3].[ConsentDefinitionId] = 3
答案 18 :(得分:0)
就我而言,我试图更改数据库中不存在的存储过程,在创建它并刷新本地缓存后,它起作用了