SQL Server Management Studio中的IntelliSense无法工作

60
我们使用 SQL Server Management Studio 2008 R2。IntelliSense 可以完美地与 SA 帐户配合使用,但无法与 Windows 身份验证用户配合使用。该用户具有 db_owner 角色的 master 数据库访问权限,但不是 sysadmin。
如何解决这个问题?
20个回答

97
您可以尝试这些问题1问题2问题3中的解决方案。
或请按以下步骤尝试:
  • 启用IntelliSense:
    • 对于所有查询窗口,请转到工具>>选项>>文本编辑器>>Transact-SQL>> IntelliSense,并选择启用 IntelliSense。
    • 对于每个打开的查询窗口,请转到查询>>启用 IntelliSense。
  • 启用语句完成:请转到工具>>选项>>文本编辑器>>Transact-SQL>>常规,并选中自动列出成员和参数信息框。
  • 刷新 IntelliSense 本地缓存:请转到>>编辑>> IntelliSense >> 刷新本地缓存,或使用CTRL+ Shift + R键盘快捷键进行刷新。
  • 在再次尝试之前,请等待一两分钟以完成刷新。

7
无法工作。当以SA身份登录时,一切正常。但其他用户(非系统管理员)无法使用此功能。 - Ethem Kuloglu
请确保您已连接!我之前无法使用Intellisense,因为我打开了一个昨天启动的查询窗口,而MSSMS已经断开连接。一旦重新连接,Intellisense就可以正常工作了! - serge
终于我又有了智能感知 - 我的语句完成功能被禁用了。 - esp
1
真不敢相信我尝试了这个页面上的所有建议...却一个都不适用于我...不知道微软这个问题已经持续了多少年,他们到底在做些什么呢? - jsdev

33

我遇到了同样的问题。一切都已启用以确保Intellisense功能正常,但是并没有起作用。我意识到默认情况下启用了SQLCMD模式。禁用它可以恢复Intellisense功能 :)


5
在找到这篇文章之前,我尝试了很多方法。非常感激。只要取消选中sqlcmd,Intellisense就可以在2012上正常工作了。 - Shaji
3
非常感谢。我为此苦苦挣扎了一整天。 - Kayathiri
这对我也起作用了。我发现我需要打开它,然后再关闭(2次?我现在不记得了)。 - JonV
5
我必须关闭所有新查询的SQLCMD模式(工具>选项>查询执行>SQL Server>常规),然后由于某些原因我需要离开SSMS并重新进入。是的-我的Intellisense回来了! - Andy Brown
非常有帮助关闭sqlcmd! - undefined

26

3
根据数据库的大小和架构不同,智能感知需要几分钟才能填充完整。 - KarmaEDV
1
这是“编辑”>“智能感知”>“刷新本地缓存”的键盘快捷方式。如果这个方法不起作用,该菜单中的其他选项可能会有所帮助(我已经尝试了所有选项)。 - Dunc

10

在“工具”、“选项”、“文本编辑器”、“Transact-SQL”、“智能感知”下,增加脚本最大大小可以修复我的智能感知问题。


1
搞定了。很奇怪,我将最大脚本大小从1MB设为2MB,然后再将其从2MB恢复到原来的1MB,但它仍然可以工作。这很奇怪,因为你本应该期望它停止工作。 - JoeT
将脚本的最大大小更改后,问题也得到了解决。其他设置都是正确的! - Moshe Yalovsky

10

我用2个简单的步骤修复了这个问题:

  1. 转到 工具 > 选项 > 文本编辑器 > Transact-SQL > IntelliSense,勾选所有选项,并按以下方式设置:

enter image description here

  1. 进入查询 > SQLCMD 模式,然后禁用它:

enter image description here


10

我尝试了上面/下面的所有建议... 但都没有起作用。

  • 打开选项并将所有开关关闭和打开不起作用
  • 切换SQLCMD没有用
  • 进入 Edit > Intellisense 并将所有开关关闭和打开不起作用
  • 更改RAM和Cache大小没有用
  • 我试着重新启动电脑,但没有用

但最终(在绝望的情况下,我愿意尝试任何方法...即使这是有史以来最愚蠢的想法...) 那个最终有效的方法是:

我打开一个新的查询选项卡。将打开的脚本文件中的代码复制,粘贴到新的查询选项卡中。然后,随着Intellisense再次开始工作,我惊奇地发现自己已经成功了。

不仅在我的新查询选项卡中开始工作...而且也开始在我的原始查询选项卡中工作。

有时候,我只想把头猛撞桌子。

希望这个小技巧能帮助到某些人。 :)

P.S. 是的...我在每次尝试失败后等了一段时间,以确保Intellisense没有花费太多的时间寻找自己。"New Query Tab" 的方法立即生效了。


令我惊讶的是,这也解决了我的问题。 - Josh B

8

其他解决方案中缺失的,但对我有用的:

Edit > IntelliSense > Toggle Completion Mode

或者 CTRL+ALT+Space


1
谢谢您的建议。虽然选项已经打开,但我的智能感应直到典型的“关闭并重新打开”才起作用... - FAB

6

在SSMS 18.1中,启用并关闭查询 > SQLCMD 模式后,解决了我的问题,即使一开始从未启用。

在尝试所有答案都无效且放弃之后,我对Chow Lover答案中提到的SQLCMD Mode感到好奇。我打开它看看它做了什么,但没有注意到任何变化,所以又将其关闭了。随后Intellisense突然苏醒过来,并一直正常工作。


4
最初的回答:我的计划太大了。我得这样做:
工具 >> 选项 >> 文本编辑器 >> Transact-SQL >> 智能感知
最大脚本大小:无限制

2

禁用/重新启用IntelliSense 对我很有帮助:

工具 > 选项 > 文本编辑器 > Transact-SQL > IntelliSense > 启用 IntelliSense


1
疯狂的是,在SSMS2019中,当我关闭它时,智能感知突然开始工作了。再次打开它,仍然可以正常工作。令人惊奇的是,微软版本更新后仍无法正确实现这个简单的概念。 - LarryBud
@LarryBud 是的,太神奇了。我已经做了好几年了。 - Sylvain Rodrigue

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接