事实证明,这个问题确实很棘手(而且很烦人)。

在SQL Server Management Studio 2008中,直到几天前,我的IntelliSense仍然运转良好。然后突然停了下来。该图标在工具栏菜单上启用,并且在“工具”->“选项”->“文本编辑器”->“ T-SQL”->“ IntelliSense”下表示已在此处启用。

我尝试刷新IntelliSense使用Ctrl-Shft-R进行缓存,但这也不起作用。

任何想法我的IntelliSense发生了什么以及需要如何将其取回?

#1 楼

如果您最近升级了VisualStudio,则请查看此链接以获取修复:

在安装Visual Studio 2010 SP1之后,SSMS 2008 R2中的IntelliSense功能可能会停止工作。直接从此处下载修补程序:

如何获取SQL Server 2008 R2的最新Service Pack

#2 楼

IntelliSense无法正常工作的可能性有很多:

在某些情况下,IntelliSense使用的本地缓存会过时。刷新缓存很容易,但不一定很明显。

有两种刷新缓存的方法:


按Ctrl + Shift + R

转到“编辑”->“ IntelliSense”->“刷新本地缓存”

如果IntelliSense仍无法正常工作,请确保已启用IntelliSense。要从当前数据库的T-SQL查询编辑器窗口中进行检查,请执行以下操作:


转到工具->选项->文本编辑器-> Transact-SQL->常规-> IntelliSense

转到查询->应该选择IntelliSense

还要验证T-SQL编辑器没有在SQLCMD模式下启动。要检查:


转到工具->选项->查询执行-> SQL Server->常规
确保“默认情况下,以SQLCMD模式打开新查询”为未被选中。
或转到查询->不应选择SQLCMD模式



阅读更多内容

#3 楼

我遇到了这个问题,因此我遵循了Ritesh D的建议,并转到了工具->选项->文本编辑器-> Transact-SQL->常规。我检查了IntelliSense,发现它已启用。

但是,我发现未选中“自动列表成员”和“参数信息”。所以我检查了他们。这解决了我的问题。



这两个功能是我认为的“智能”,Microsoft也不同意:


IntelliSense是许多功能的总称:列表成员,参数信息,快速信息和完整Word。这些功能可帮助您了解有关正在使用的代码的更多信息,跟踪正在键入的参数以及仅需几次按键即可添加对属性和方法的调用。


#4 楼

请检查在菜单选项工具->选项->文本编辑器-> Transact-SQL->常规-> IntelliSense下,将最大脚本大小设置为“无限制”。我做到了,intellisense开始工作

评论


这个固定的地雷!谢谢。默认为1MB,这很小。所以我只是将其更改为无限制,现在又恢复了。

–斯图尔特
20/11/13在3:35

#5 楼

当您使用具有低传输连接的远程数据库(例如,我从欧洲连接到远东的办公服务器)并且数据库的结构不小(例如,许多表)时,SSMS需要花费更多的时间来完成所有IntelliSense数据。

就我而言,我必须等待1分钟以上才能访问IntelliSense(缓慢的连接和大约1000个表的数据库)。 (SSMS不会显示任何进度指示器或与IntelliSense的加载过程有关的任何信息)

评论


我正在使用的数据库是远程数据库,它的规模也很大,尽管不是1000个表。但是我已经考虑了所有建议,直到现在都没有用。没用

–塔拉·伊玛目(Talha Imam)
20 Mar 10 '20 at 10:19

#6 楼

离线数据库可能导致智能感知停止工作。您可以通过将连接的服务器中的任何数据库置于OFFLINE并将其还原来进行测试。

我可以将其确认为SQL 2016错误

#7 楼

正如Azure所建议的,当我撤销对公共用户的某些权限时,我注意到了此问题。这有助于解决我的问题:

use master
go
GRANT EXECUTE ON [xp_instance_regread] TO [public]
GRANT EXECUTE ON [xp_regread] TO [public]


#8 楼

我通过2个简单步骤解决了这个问题:

转到“工具”>“选项”>“文本编辑器”>“ Transact-SQL”>“ IntelliSense”,勾选所有内容并以这种方式设置设置:



转到“查询”>“ SQLCMD模式”,并将其禁用: