为什么SQL Server 2008管理工具的智能感知功能无法使用?

180

我试图找出为什么智能感知完全无法工作而陷入疯狂。我正在使用本地的2008服务器,数据库设置为2008兼容性,我可以在每个菜单中都打开智能感知,但即使按下CTRL-J,也不会弹出任何成员列表。

有没有人遇到过这样的情况,并找到了解决办法?如果没有智能感知,我真的无法开始工作。


3
MicrosoftÂŪ SQL ServerÂŪ 2008 R2 Service Pack 1 - http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=26727åūŪč―ŊÂŪ SQL ServerÂŪ 2008 R2 Service Pack 1 - http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=26727 - Thomas Eyde
这似乎只适用于SQL Server 2012,但许多修复程序也适用于早期版本,并且如果您已经打了补丁程序但仍然有症状,那么值得一看:http://www.mssqltips.com/sqlservertip/2591/troubleshooting-intellisense-in-sql-server-management-studio-2012/ - Aaron Bertrand
来自微软支持热修复的直接链接 http://hotfixv4.microsoft.com/SQL%20Server%202008%20R2/nosp/SQLServer2008R2_RTM_CU7_2507770_10_50_17/10.50.1777.0/free/431249_intl_i386_zip.exe - Mahmoude Elghandour
SQL提示也可以是一种替代方法 http://www.red-gate.com/products/sql-development/sql-prompt/ - Zameer Ansari
1
我至少已经使用了几年没有Intellisense的SSMS,直到偶然发现它应该有一个工作中的自动完成功能。对我来说从来没有正常工作过。现在我正在使用全新的机器,安装了SQL Express 2014,并猜测什么,它仍然不起作用。 - gyozo kudor
17个回答

106

我知道这篇文章已经有一段时间了,但是如果仍然有人在搜索并且尝试过重新安装、应用累积更新或其他方法后仍然无法解决intellisense问题,那么我希望可以提供帮助。

我已经应用了SQL 2008 R2 Service Pack 1,您可以在此处下载:

http://www.microsoft.com/download/en/details.aspx?id=26727

32位: SQLServer2008R2SP1-KB2528583-x86-ENU.exe

64位: SQLServer2008R2SP1-KB2528583-x64-ENU.exe

我已经应用了此SP1,现在我的intellisense又可以使用了。


2
国王的回答很久以前就解决了我的问题,但由于大多数人似乎是因为其他原因而来到这个问题,所以我将您的回答作为被接受的答案。 - スーパーファミコン
1
谢谢,伙计。又遇到这个问题了,即使没有服务器也要发送短信,决定安装SP1 SMS。 - Johnny_D
1
我尝试了King的修复选项,但对我没有用。安装上面的32位SP对我有用。 - Darren Griffith

87

Visual Studio 2010 SP1会破坏SSMS 2008 R2的IntelliSense。有一个相关的反馈,幸运的是也有一个修复程序

(简而言之,您需要安装SQL Server 2008 R2的累积更新包7,通过请求SQLServer2008R2_RTM_CU7_2507770_10_50_1777_x86或者

SQLServer2008R2_RTM_CU7_2507770_10_50_1777_x64

此热修复请求页面下载.)

编辑: 正如@Paul Lemke所指出的,您可能需要获取最新的CU更新包。 这个博客包含SQL服务器发行版。(截至本文撰写时,最新的是CU14


4
请注意,您可能需要安装较新的累积更新。我不得不使用累积更新9。http://support.microsoft.com/kb/2567713 - Paul Lemke
我已经尝试下载这个以及后续的软件包,但是自解压缩的zip文件失败了,要求插入套装的最后一张光盘?!非常沮丧!没有智能感知真的很烦人! - David Masters
1
他们应该通过Windows更新机制来推广CU,因为我是通过这些更新获得VS2010的SP1更新的。该死的。 - Johnny_D

21

针对 SQL Server 2008 R2,安装 累计更新 7 可以解决该问题。你需要的文件是:

SQLServer2008R2_RTM_CU7_2507770_10_50_1777_x86
或者
SQLServer2008R2_RTM_CU7_2507770_10_50_1777_x64

我还需要先卸载并重新安装 SQL Server 2008 (虽然它没能解决问题,但累计更新修复了问题)。


3
这个答案非常正确,微软的热修复列表没有说明需要哪个下载。我按照这里的建议下载了文件,问题得到了解决。你帮我节省了很多时间,谢谢! - AndyM
来自微软的直接链接:http://hotfixv4.microsoft.com/SQL%20Server%202008%20R2/nosp/SQLServer2008R2_RTM_CU7_2507770_10_50_17/10.50.1777.0/free/431249_intl_i386_zip.exe - Mahmoude Elghandour

14

无需重新安装。

点击设置文件。然后进入维护并点击修复。这应该可以解决智能感知问题。


6
这对我没有起作用。即使卸载/重新安装也无法解决问题。Jaraics提到的累积更新程序是解决方法。(在我的情况下,问题是由VS2010 SP1引起的) - RonnBlack

12

我遇到了同样的问题。我发现在将一些数据库脱机并执行Intellisense刷新(Ctrl-Shift-R)之后,Intellisense停止工作。然后我将脱机的数据库重新上线,再次进行刷新(Ctl-Shft-R),然后万岁!Intellisense又能用了。

多么糟糕的设计。也许当一个数据库存在但是脱机时,Intellisense列表的人口密度就会降低。谢谢Microsoft。


2
谢谢Ctrl-Shift-R的快捷键,以前从未知道可以刷新Intellisense。 - jamiebarrow

7

我不想轻率地推荐产品,因为让Intellisense运行可能是最好的选择,但我已经苦苦挣扎了几个月不能在管理工作室上使用Intellisense。重新安装、CU7更新、刷新缓存、向异教神祈祷仪式等等,没有什么能帮助。

当我即将为RedGate的SqlPrompt支付巨额价格(195美元)时,我发现了SqlComplete。

http://www.devart.com/dbforge/sql/sqlcomplete/?gclid=CN2xs_Lw7akCFcYZHAodpicXXw

有一个免费版可以实现基本功能,而完整版只需50美元!

我是一名数据库架构师,虽然我可以记住命令,但自动完成可以为我节省大量时间。如果你卡住了,无法让Intellisense工作,请尝试使用SqlComplete。它为我省去了数小时的麻烦。


非常实用和快速的解决方案。太棒了!谢谢! - Rui Craveiro
升级到MSSQLMS 2012后,我与不起作用的自动完成功能斗争了一个多小时,尝试了每个网站上建议的一切,但都无济于事。最后我尝试了这个方法,它比内置的功能更好,而且免费! - richardtallent

5

1
干得好。正是你提醒我使用SQLCMD模式,才让我成功了。 - wghornsby

2

我最终通过重新安装SQL Server 2008来解决了这个问题。虽然这并不是最优的解决方法,但如果有人遇到类似的问题,可以尝试这种方法。


1
点赞只是为了让它不再处于“未回答”类别中。祝你一切顺利! - Brent Ozar
3
现在你已经使它工作了,你是否惊讶于它的质量有多差? - Paul Suart

2

我尝试了所有的解决方法 - 将数据库离线再上线,安装累积更新10,修复SQL Server安装程序,刷新本地缓存,对SQL Server Management Studio上所需设置进行更改,但一切都无济于事。最后安装正确的服务包(SP1)为我解决了问题!

请点击以下链接,下载SQLServer2008R2SP1-KB2528583-x86-ENU.exe(或适用于x64位SQL Server实例的x64文件)。

http://www.microsoft.com/download/en/details.aspx?id=26727

最终,我启用了智能感知!


1
在找到这个帖子后,我发现我的Intellisense只在将数据库脱机后才会出现问题,并且实例上的任何脱机数据库都会导致Intellisense失效。
这个帖子中解释了为了恢复Intellisense,您必须:
  • 将必要的数据库脱机,然后
  • 重新启动服务器实例,最后
  • 刷新Intellisense缓存。
这个过程对我有用,现在Intellisense又可以正常工作了。

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