在 SQL 2008(SSMS)中,模式更改未在 Intellisense 中更新

20

我发现了一个问题 - 这感觉像是个bug,但我怀疑这是一个“特性” - 在SQL Server 2008的SSMS中。

我有许多标签页打开,例如一个表的修改脚本在一个标签页,而查询该表的SProc在另一个标签页,当我执行我的Alter Table脚本时,另一个标签页中的Intellisense没有反映出修改结果。

我可以创建新的查询,但修改结果仍然不会反映在Intellisense中。如果我打开一个新的SSMS实例,则修改结果会被反映出来,直到我再次进行更改为止。

但是,如果您覆盖Intellisense并继续使用修改后的表和代码,所有内容都将如预期般无误地编译通过。

这是一个bug吗?还是一个特性?是否存在可以更改此行为的某个设置?我在选项中检查了一下,但没有看到任何东西。

3个回答

52

CTRL + SHIFT + R可以简称为更新智能感知。


13

我发完提问之后,很快就在谷歌上找到了成功搜索的正确短语。

是的,各位,这确实是一个功能!Intellisense依赖于本地缓存,您需要手动刷新它。参见:

http://blogs.msdn.com/dtjones/archive/2008/09/11/refreshing-the-intellisense-cache.aspx

另外:Ninjapig的替代方法

在我看来,这更是有点让人恼火,但我相信专家会认为它需要以这种方式存在的重要性。经过进一步检查,我已经能够在其中一个工具栏上添加“刷新本地缓存”的按钮。经过快速尝试刷新后,似乎刷新需要一些时间,因为Intellisense从过时变成不存在,再变成更新了一分钟左右。

我想撤回这个问题,但我会把它留在这里,以防它能帮助其他遇到这个问题的人,或者直到其他人决定否认它...


1
似乎链接已经失效,但是你可以在这里找到类似的帖子:链接 - Kevin Hogg
1
链接仍然有效,尽管我确信它会带您进入页面的精简版本。为了完整起见,我也会包含您的链接。 - CJM

2
很好地提出了这个问题 - 我在VS 2008 SP1中经常遇到这个问题,但是只有在刷新后才能将正确的名称编码,否则仍然会产生错误的波浪线 - 目前我无法让它发生。我怀疑我需要再次关闭/重新加载。

是的,我注意到刷新可能会有延迟 - 只有一两分钟。很奇怪。 - CJM

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