spinjector Asked: 2021-09-02 08:28:15 +0800 CST2021-09-02 08:28:15 +0800 CST 2021-09-02 08:28:15 +0800 CST 在 SSMS 中,IntelliSense 和 SQLCMD 模式是互斥的吗? 772 在 SSMS 中,IntelliSense 和 SQLCMD 模式是互斥的吗? 启用 SQLCMD 模式后,有什么方法可以使 IntelliSense 工作?(我经常使用 SQLCMD) 我试图了解为什么 IntelliSense 在 SQLCMD 模式下被禁用,但是在 Google 搜索结果中它们的信息太多了,我找不到明显的答案。 我发现这个很好的讨论,但不是我问题的真正答案。 ssms sqlcmd 2 个回答 Voted Best Answer Hannah Vernon 2021-09-02T09:14:24+08:002021-09-02T09:14:24+08:00 启用“TSQL” XEvent Profiler会话允许我们查看 Intellisense 缓存何时刷新。 在 SQLCMD 模式下运行时,SSMS 甚至不会尝试获取 Intellisense 数据。 如果您在已连接的会话上通过菜单禁用 SQLCMD 模式,而 TSQL XEvent Profiler 正在运行,您将看到 SSMS 查询系统架构以获取相关信息。 由于 SQLCMD 模式可用于连接到不同的实例,因此很难保证 Intellisense 的准确信息,这可能是微软关闭它的原因。 Bob Klimes 2021-09-02T10:14:52+08:002021-09-02T10:14:52+08:00 本文指出在 SQLCMD 模式下智能感知已关闭。 https://learn.microsoft.com/en-us/sql/ssms/scripting/troubleshooting-intellisense?view=sql-server-ver15 并没有真正回答为什么,但由于这看起来非常绝对,这表明无法在 sqlcmd 模式下启用它。我的预感是智能感知是一个 SSMS 函数,而 sqlcmd 模式实际上就像进入命令行一样。Azure Data Studio 中的相同行为。
启用“TSQL” XEvent Profiler会话允许我们查看 Intellisense 缓存何时刷新。
在 SQLCMD 模式下运行时,SSMS 甚至不会尝试获取 Intellisense 数据。
如果您在已连接的会话上通过菜单禁用 SQLCMD 模式,而 TSQL XEvent Profiler 正在运行,您将看到 SSMS 查询系统架构以获取相关信息。
由于 SQLCMD 模式可用于连接到不同的实例,因此很难保证 Intellisense 的准确信息,这可能是微软关闭它的原因。
本文指出在 SQLCMD 模式下智能感知已关闭。
https://learn.microsoft.com/en-us/sql/ssms/scripting/troubleshooting-intellisense?view=sql-server-ver15
并没有真正回答为什么,但由于这看起来非常绝对,这表明无法在 sqlcmd 模式下启用它。我的预感是智能感知是一个 SSMS 函数,而 sqlcmd 模式实际上就像进入命令行一样。Azure Data Studio 中的相同行为。