sql server无效的对象名称 - 但表中列出的SSMS表列表
我正在尝试为新创建的数据库创建存储过程。然而,SSMS智能感知不能识别已经创建的表格的一半以上。sql server无效的对象名称 - 但表中列出的SSMS表列表
例如,在表格下方的左栏中,我有一个表dbo.Room
,当我在新查询窗口中输入“dbo.
”时,该表格未列出,实际上只列出了37个表格中的17个表格。我发现intellisense列出的表与没有列出的表之间没有区别。如果我手动键入dbo.Room,则会加下划线,并显示错误“Invalid Object Name 'dbo.Room'.
”。
我在设置表格时错过了什么吗?
更新:我已经尝试了表列出的刷新(多次)
尝试:
编辑 - >智能感知 - >刷新本地缓存
这应该刷新Intellisense缓存的数据以提供预先打印支持和预执行错误检测。
谢谢,我怀疑这会解决。我实际上重新启动了SSMS并发现解决了。大概应该做到这一点,但我最初的想法是我在安装过程中做了错误的事情。 – Richbits 2009-09-01 13:54:17
Intellisense/SSMS是否定期刷新自身?或者这一定是一个手动过程? (我的猜测基于2005年的SSMS,但人们总是希望。) – 2009-09-01 14:26:48
难以置信,2012年你需要这样做。他们不能每隔几秒自动更新一次Intellisense吗? – 2012-02-29 05:51:43
你尝试:右键单击数据库,然后单击“刷新”
是的,我试过了,我确信它在那里,我可以添加记录和修改等。只是从dbo.Room中做了一个Select *,而我仍然有下划线输出表格的内容。我会尝试重新启动。 – Richbits 2009-09-01 13:46:45
你一定有问题的表是否存在?
你刷新了对象资源管理器中的表格视图吗?这可以通过右键单击“桌子”文件夹并按下F5键来完成。
您可能还需要重新刷新Intellisense缓存。
这可以通过以下菜单途径来实现:编辑 - >智能感知 - >刷新本地缓存
什么是对他人答案的微小修改?你给我的答案增加了一段时间,给@Adam Robinson的答案增加了一个冒号。你在玩什么游戏? – 2009-09-01 13:54:22
我没有足够的时间进行比赛,但是当涉及到语法时,我可以是一个小强迫症;-) – 2009-09-01 15:32:16
尼斯诗意的正义,你忘记了你自己的句子! – 2015-05-08 01:21:02
即使在将SP3安装到SQL Server 2008 Enterprise后,这仍然是一个“问题”。 Ctrl + Shift + R像大家一直在说的那样为我解决了这个问题。
我没有此功能...当我按Ctrl + Shift + R时没有任何更改 – 2015-09-09 17:21:03
@IbrahimAmer您的光标必须位于Intellisense菜单的查询编辑器中选项可用。如果智能感知菜单选项不可用,快捷方式将不会执行任何操作。 – Rachael 2015-10-02 13:36:24
一旦你创建了一个新的SQL Server对象,你新创建的对象不会在IntelliSence本地缓存中得到更新,并且由于这个原因,它会在该对象下面显示红线。因此,您只需刷新SSMS IntelliSence本地缓存,一旦刷新它,IntelliSence
就会自动将新创建的对象添加到缓存中,红线将消失。试试这个
Edit -> IntelliSense -> Refresh Local Cache
或按Ctrl + 移 + [R
我没有这个功能......当我按ctrl + shift + R时没有任何变化 – 2015-09-09 17:21:10
@IbrahimAmer您的光标必须位于查询编辑器中,才能使Intellisense菜单选项可用。如果智能感知菜单选项不可用,快捷方式将不会执行任何操作。 – Rachael 2015-10-02 13:35:42
解决的办法是:
- 点击菜单查询,
- 然后单击“更改数据库”。
- 选择适当的数据库名称。
就是这样。
我意识到这个问题已经回答了,但是,我有不同的解决方案:
如果你正在写,你删除表,而不用重新创建这些脚本,这些表将显示为丢失,如果你尝试稍后参考它们。
注意:对于不断运行的脚本不会发生这种情况,但有时候使用脚本查询reerence比在每次输入脚本时更容易。
在我的情况下,IntelliSense缓存列出了完全不同的数据库的对象信息。如果我单击SSMS中的“新建查询”按钮,它将打开一个查询到我在服务器上的默认目录,该查询编辑器将始终只使用该数据库。刷新缓存不会改变任何内容。重新启动SSMS并没有改变任何东西。改变数据库并没有改变任何东西。
我最终创建了一个查询,通过右键单击我实际想要使用的数据库并从该上下文菜单中选择“New Query”。 现在 SSMS使用智能感知的正确对象。
与我同样的问题,当我用这个语法问题解决。
语法:
Use [YourDatabaseName]
Your Query Here
解决的SSMS 2016年
也有类似的问题,但智能感知是不是在编辑菜单。
什么似乎解决它是打开和关闭Intellisens,右键单击SQL编辑器,然后单击“Intellisense Enabled”。再次右键点击'Intellisense Enabled'将其重新打开。 Ctr Q,我也是这样做的。
这解决了这个问题,我也知道在编辑菜单上获得智能感知。
我只需关闭SMSS并重新打开它。我尝试刷新本地缓存,并没有工作。
谢谢。编辑 - >智能感知 - >刷新本地缓存为我工作! – SarjanWebDev 2011-06-09 00:40:04
解决方案:'[DatabaseName]。[Schema]。[TableName]'[SO:Invalid Object Name sql](http://stackoverflow.com/a/24621331/1608670) – 2016-01-24 13:56:55