我在 Windows 10 64 位上使用 SQL Server 2016 Developer Edition。所有数据库都在我的笔记本电脑上。
我有一个 SQL 脚本文件,但 Intellisense 对其不起作用。我启用了 Intellisense 并尝试了这篇文章中建议的各种修复方法:
这些修复都不适合我;但是,Intellisense 适用于所有其他文件。这个文件唯一特别的是它的长度:它有 600 多行代码。
看来问题是由创建列存储索引的命令引起的。这是一个示例代码:
SELECT TOP 100 *
INTO #test1
FROM tab1
CREATE CLUSTERED COLUMNSTORE INDEX idx ON #test1
SELECT TOP 100 *
INTO #test2
FROM tab1
我发现插入中间的代码块后,Intellisense 停止工作了!插入中间代码块后,大纲也会消失。
一旦我删除了中间的代码块,大纲和 Intellisense 将再次工作。
谁能帮我测试这个示例案例?
--
我尝试添加分号和 GO 来分隔代码,但它们都不适合我。现在看来,唯一可行的解决方案是将中间的块注释掉。
如果它已经启用,请按Ctrl+ Shift+ R。这将使用使用过的数据库更新 Intellisense。
有时,如果使用的数据库不频繁,那在 SSMS 中不会立即起作用,但上面会更新 Intellisense。
如果出现与长脚本相关的问题,请转到工具>选项>。在左侧,搜索Text Editor>Transact-SQL>IntelliSense。
有一个项目叫做Maximum Script Size。可能是100KB`。在下拉菜单中,将其更改为至少 5MB,或根据您的喜好更改为无限制。设置好后,需要关闭SSMS,重新启动。一些旧版本需要重新启动系统。那应该有效。
在中间代码块之后添加一个分号。我注意到有时它在尝试处理某些东西时会“卡住”。在命令中为它提供一个明确的中断似乎让它在下一个查询中再次出现。
经过一些测试后,我也遇到了与 SSMS 2016(版本 13.0.16104.4)相同的问题。通过包含可选词 ,我能够使大纲和 IntelliSense 功能在比您报告的多几个词上工作
NONCLUSTERED
,但在我命名索引后,IntelliSense 和大纲功能都停止工作。我建议您填写一个Microsoft Connect项目,以便 MS 团队有一个适当的错误提交票据来处理。
事后发布链接,我也会对其进行投票。