当使用退格键

时间:2017-02-17 15:34:53

标签: ssms-2014

随后在SSMS 2014中编写SQL查询时,我会得到一个弹出窗口“ Visual Studio遇到异常。这可能是由扩展名”引起的,还有我可以运行的提示使用 / log 参数的应用程序,并检查在我的用户的AppData目录中创建的 ActivityLog.xml 文件。

在此弹出窗口之后,IntelliSense停止更新,并且打开/关闭它无效(任何错误仍然用红色波浪线等加下划线,包括它们的鼠标悬停弹出窗口无限期保留)。请注意,即使我的脚本没有任何错误,也会发生这种情况。

但这不是真正的问题,因为我得到“价值不在预期范围内”错误每次我推倒空间键,尽管删除关键工作得很好。

在我开始使用该应用程序几个月后才出现此问题。

到目前为止,解决方法一直是将查询复制到新的查询窗口(立即生效),或者等待它随机停止。所以问题与查询窗口隔离

重现的步骤:

  1. 输入一段时间的SQL代码。
  2. 似乎绝对没有共性,因为它发生在语法正确/不正确的语句和长/短查询(从单个SELECT语句到数千行存储过程)的所有组合中。它也发生在不引用任何用户定义实体的语句中(例如,从系统表中选择)。

    采取的故障排除步骤:

    1. 确保安装所有更新
    2. 重新启动计算机
    3. 禁用所有扩展 - 我没有使用任何...我遵循this注册表路径,并且在任何版本号的SQL Server的x86或x64注册表路径中都没有AddIns键。
    4. 谷歌搜索问题 - 没有任何相关性 - 我正在键入查询而不是使用SSIS
    5. 使用/ log参数运行SSMS - 初始错误告诉我使用/ log参数启动SSMS 已记录。但是每次使用相同的堆栈跟踪记录“超出范围”错误(包含在帖子底部)
    6. 查看日志文件,它们可能在最后一条消息(比我在查询窗口中的时间更长的时间)和使用退格键引起的异常之间有两个小时的差距。

      以下步骤由我公司的IT部门执行:

      1. 清除IntelliSense和其他缓存
      2. 重新安装SSMS
      3. 后来:

        1. 更换了整台计算机(之后我完全放弃了针对SQL的IntelliSense)。它工作了一段时间,然后在几个月后再次开始。
        2. 我似乎是唯一一个有这个问题的人,因为我公司的IT部门以前没见过,而且所有Google搜索错误消息都没有结果(我没有使用SSIS)。它已经困扰了我一个多月了,让我发疯了。

          谢谢。

          更新在编辑JavaScript时,我在Visual Studio 2013中遇到了类似的棘手行为,它甚至抛出了一个错误,我认为该错误与退格问题之前SSMS中抛出的第一个错误相同(但是我点击太快并在阅读前关闭它。

          ActivityLog.xml中的示例堆栈跟踪

          <entry>
              <record>1172</record>
              <time>2017/01/16 19:33:02.289</time>
              <type>Error</type>
              <source>Editor or Editor Extension</source>
              <description>
          System.ArgumentException: Value does not fall within the expected range.&#x000D;&#x000A;
             at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo)&#x000D;&#x000A;
             at System.Runtime.InteropServices.Marshal.ThrowExceptionForHR(Int32 errorCode)&#x000D;&#x000A;
             at Microsoft.VisualStudio.NativeMethods.ThrowOnFailure(Int32 hr, Int32[] expectedHRFailure)&#x000D;&#x000A;
             at RadLangSvc.SqlCompletionSet.GetTextTypedSoFar()&#x000D;&#x000A;
             at RadLangSvc.Source.OnCommand(IVsTextView textView, VSStd2KCmdID command, Char ch)&#x000D;&#x000A;
             at Microsoft.VisualStudio.Package.ViewFilter.HandlePostExec(Guid&amp; guidCmdGroup, UInt32 nCmdId, UInt32 nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut, Boolean bufferWasChanged)&#x000D;&#x000A;
             at Microsoft.VisualStudio.Package.ViewFilter.ExecCommand(Guid&amp; guidCmdGroup, UInt32 nCmdId, UInt32 nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut)&#x000D;&#x000A;
             at Microsoft.VisualStudio.Package.ViewFilter.Microsoft.VisualStudio.OLE.Interop.IOleCommandTarget.Exec(Guid&amp; guidCmdGroup, UInt32 nCmdId, UInt32 nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut)&#x000D;&#x000A;
             at Microsoft.VisualStudio.Editor.Implementation.CommandChainNode.Exec(Guid&amp; pguidCmdGroup, UInt32 nCmdID, UInt32 nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut)&#x000D;&#x000A;
             at Microsoft.VisualStudio.Editor.Implementation.CommandFilterWrapper.Exec(Guid&amp; pguidCmdGroup, UInt32 nCmdID, UInt32 nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut)&#x000D;&#x000A;
             at Microsoft.VisualStudio.Editor.Implementation.CommandChainNode.Exec(Guid&amp; pguidCmdGroup, UInt32 nCmdID, UInt32 nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut)&#x000D;&#x000A;
             at Microsoft.VisualStudio.Editor.Implementation.CommandFilterWrapper.Exec(Guid&amp; pguidCmdGroup, UInt32 nCmdID, UInt32 nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut)&#x000D;&#x000A;
             at Microsoft.VisualStudio.Editor.Implementation.CommandChainNode.Exec(Guid&amp; pguidCmdGroup, UInt32 nCmdID, UInt32 nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut)&#x000D;&#x000A;
             at Microsoft.VisualStudio.Editor.Implementation.CommandFilterWrapper.Exec(Guid&amp; pguidCmdGroup, UInt32 nCmdID, UInt32 nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut)&#x000D;&#x000A;
             at Microsoft.VisualStudio.Editor.Implementation.VsTextViewAdapter.Exec(Guid&amp; pguidCmdGroup, UInt32 nCmdID, UInt32 nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut)&#x000D;&#x000A;
             at Microsoft.VisualStudio.Editor.Implementation.VsKeyboardFilter.SendCommand(Guid cmdGroup, UInt32 cmdID, Object inParam)&#x000D;&#x000A;
             at Microsoft.VisualStudio.Editor.Implementation.VsKeyboardFilter.TextInput(TextCompositionEventArgs args)&#x000D;&#x000A;
             at Microsoft.VisualStudio.Text.Editor.Implementation.KeyProcessorDispatcher.&lt;DispatchTextInputEvents&gt;b__0(KeyProcessor p, TextCompositionEventArgs args)&#x000D;&#x000A;
             at Microsoft.VisualStudio.Text.Editor.Implementation.KeyProcessorDispatcher.&lt;&gt;c__DisplayClass1e`1.&lt;Dispatch&gt;b__1a()&#x000D;&#x000A;
             at Microsoft.VisualStudio.Text.Utilities.GuardedOperations.CallExtensionPoint(Object errorSource, Action call)
              </description>
          </entry>
          

          2019更新 我们升级到VS 2017,SQL IntelliSense的行为就像以前一样。它只是完全延迟和垃圾邮件内存和CPU迫使我使用任务管理器杀死VS。

          版本信息:

          Microsoft SQL Server Management Studio 12.0.4232.0

          Microsoft Analysis Services客户端工具12.0.4232.0

          Microsoft数据访问组件(MDAC)6.1.7601.17514

          Microsoft MSXML 3.0 5.0 6.0

          Microsoft Internet Explorer 9.11.9600.18537

          Microsoft .NET Framework 4.0.30319.36373

          操作系统6.1.7601

1 个答案:

答案 0 :(得分:1)

这是intellisense的错误,甚至在v18.5中也存在

两种解决方法:

  1. 重新打开自动列表成员(选项/文本编辑器/所有语言/常规)

  2. 如果要保留自动列表成员,则在出现错误时,按[Ctrl] + [Space]列出成员,这将用数据重新填充智能感知对象。