这个问题确实被证明是一个棘手的问题(而且很烦人)。
在 SQL Server Management Studio 2008 中,直到几天前,我的 IntelliSense 都运行良好。然后突然停了下来。在工具栏菜单上启用的图标,在工具 -> 选项 -> 文本编辑器 -> T-SQL -> IntelliSense 下,它表示它已在此处启用。
我尝试使用 Ctrl-Shft-R 重新刷新 IntelliSense 缓存,但这也不起作用。
任何想法我的 IntelliSense 发生了什么以及我需要做些什么才能将其恢复?
IntelliSense 无法正常工作的可能性有很多:
在某些情况下,IntelliSense 使用的本地缓存变得陈旧。刷新缓存很容易,但不一定很明显。
刷新缓存有两种方式:
如果 IntelliSense 仍然无法正常工作,请确保您已启用 IntelliSense。要从当前数据库的 T-SQL 查询编辑器窗口检查这一点:
还要验证 T-SQL 编辑器不会在 SQLCMD 模式下启动。去检查:
阅读更多
我遇到了这个问题,所以我按照 Ritesh D 的建议转到了Tools -> Options -> Text Editor -> Transact-SQL -> General。我检查了 IntelliSense,发现它已经启用。
但是,我发现“自动列表成员”和“参数信息”没有被选中。所以我检查了他们。这解决了我的问题。
这两个功能我认为是“智能感知”,微软也不反对:
如果您最近升级了 VisualStudio,请查看此链接以获取修复:
安装 Visual Studio 2010 SP1 后,SSMS 2008 R2 中的 IntelliSense 功能可能会停止工作
或者你可以直接从这里下载修复:
如何获取 SQL Server 2008 R2 的最新服务包
请检查菜单选项工具 -> 选项 -> 文本编辑器 -> Transact-SQL -> 常规 -> IntelliSense 下的最大脚本大小是否设置为“无限制”。我这样做了,智能感知开始工作
当您使用低传输连接的远程数据库(例如我从欧洲连接到远亚洲的办公服务器)并且数据库的结构不小(例如许多表)时,SSMS 需要更多时间来完成所有 IntelliSense 数据。
在我的情况下,我必须等待超过 1 分钟才能访问 IntelliSense(连接速度慢,数据库大约有 1000 个表)。(SSMS 不显示任何进度指示器或与 IntelliSense 加载过程相关的任何信息)
OFFLINE数据库可能会导致 intelisense 停止工作。您可以通过将连接的服务器中的任何数据库置于 OFFLINE 并还原它来测试它。
我可以确认它是一个 SQL 2016 错误
当我按照 Azure 的建议撤销对公共用户的某些权限时,我注意到了这个问题。这有助于解决我的问题:
我通过两个简单的步骤解决了这个问题: