无法在 SSMS 中打开视图的设计

Ada*_*dam 7 sql-server ssms view sql-server-2016

当我尝试打开视图的设计时,我收到此错误消息(您可以在下面看到)。它不会发生在表格中,只有在视图中并且只有当我尝试查看设计时才会发生,因此我能够从中检索数据,例如使用选择查询。因为我们将数据库移动到另一个虚拟服务器,所以我收到了这个错误。我在具有不同 Windows(7 和 10)和 SSMS(2008、2010、2012、2014)版本的不同计算机上进行了尝试。

在此处输入图片说明

标题:Microsoft SQL Server 管理工作室
------------------------------

尝试读取或写入受保护的内存。这通常表明其他内存已损坏。(Microsoft.VisualStudio.OLE.Interop)

------------------------------
纽扣:

好的

====================================

当我点击详细信息时,我会看到以下信息:

尝试读取或写入受保护的内存。这通常表明其他内存已损坏。(Microsoft.VisualStudio.OLE.Interop)

------------------------------
节目地点:

   在 Microsoft.VisualStudio.OLE.Interop.IOleCommandTarget.QueryStatus(Guid& pguidCmdGroup, UInt32 cCmds, OLECMD[] prgCmds, IntPtr pCmdText)
   在 Microsoft.VisualStudio.Platform.WindowManagement.DocumentObjectSite.QueryStatus(Guid& pguidCmdGroup, UInt32 cCmds, OLECMD[] prgCmds, IntPtr pCmdText)
   在 Microsoft.VisualStudio.Platform.WindowManagement.WindowFrame.QueryStatus(Guid& pguidCmdGroup, UInt32 cCmds, OLECMD[] prgCmds, IntPtr pCmdText)
   在 Microsoft.Internal.VisualStudio.Shell.Interop.IVsTrackSelectionExPrivate.Register()
   在 Microsoft.VisualStudio.Platform.WindowManagement.WindowFrame.ConnectSelectionContext()
   在 Microsoft.VisualStudio.Platform.WindowManagement.WindowFrame.Activate()
   在 Microsoft.VisualStudio.Platform.WindowManagement.WindowManagerService.viewManager_ActiveViewChanged(Object sender, ActiveViewChangedEventArgs e)
   在 System.EventHandler`1.Invoke(Object sender, TEventArgs e)
   在 Microsoft.VisualStudio.PlatformUI.ExtensionMethods.RaiseEvent[TEventArgs](EventHandler`1 eventHandler, Object source, TEventArgs args)
   在 Microsoft.VisualStudio.PlatformUI.Shell.ViewManager.SetActiveView(视图视图,ActivationType 类型)
   在 Microsoft.VisualStudio.Platform.WindowManagement.WindowFrame.ShowInternal(ShowFlags showFlags)
   在 Microsoft.VisualStudio.Platform.WindowManagement.WindowFrame.b__26()
   在 Microsoft.VisualStudio.ErrorHandler.CallWithCOMConvention(Func`1 方法)
   在 Microsoft.VisualStudio.Platform.WindowManagement.WindowFrame.Show()
   在 Microsoft.VisualStudio.Platform.WindowManagement.WindowFrame.MarshalingWindowFrame.b__7a()
   在 Microsoft.VisualStudio.Shell.ThreadHelper.Invoke[TResult](Func`1 方法)
   在 Microsoft.VisualStudio.Platform.WindowManagement.WindowFrame.MarshalingWindowFrame.Microsoft.VisualStudio.Shell.Interop.IVsWindowFrame.Show()
   在 Microsoft.SqlServer.Management.UI.VSIntegration.Editors.VirtualProject.CreateDesigner(Urn origUrn, DocumentType editorType, DocumentOptions aeOptions, IManagedConnection con, String fileName)
   在 Microsoft.SqlServer.Management.UI.VSIntegration.Editors.VirtualProject.Microsoft.SqlServer.Management.UI.VSIntegration.Editors.ISqlVirtualProject.CreateDesigner(Urn origUrn, DocumentType editorType, DocumentOptions aeOptions, IManagedConnection con, String fileName)
   在 Microsoft.SqlServer.Management.UI.VSIntegration.Editors.ISqlVirtualProject.CreateDesigner(Urn origUrn, DocumentType editorType, DocumentOptions aeOptions, IManagedConnection con, String fileName)
   在 Microsoft.SqlServer.Management.UI.VSIntegration.Editors.VsDocumentMenuItem.CreateDesignerWindow(IManagedConnection mc, DocumentOptions options)
   在 Microsoft.SqlServer.Management.UI.VSIntegration.Editors.VsDocumentMenuItem.InvokeDesigner(IManagedConnection 连接)
   在 Microsoft.SqlServer.Management.UI.VSIntegration.Editors.VsDocumentMenuItem.Invoke()
   在 Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.ToolsMenuItemBase.MenuInvokedHandler(Object sender, EventArgs args)

我们在 Windows 10 上安装了 SSMS 2012 和 2014,一些较旧的计算机在 Windows 7 上安装了 SSMS 2010 和 2012。所有计算机都安装了 Visual Studio 2015。不幸的是,由于公司政策,我无法使用比 SSMS 2014 更新的版本。

我们使用 SQL Server 2016。(版本 13.0.4001.0;NT x64)

exec sp_helptext 'theView' 效果很好。

Dan*_*örk 8

由于您使用的 SQL Server 版本比 SSMS 更新,因此我建议您安装与 SQL Server 版本相同或更高版本的 SSMS。不能保证旧版本的 SSMS 可以在较新的 SQL Server 上运行,但相反的应该可以运行。SSMS 应该向后兼容,但不保证将来兼容。

我知道这个答案不是你想听到的,而是像我如何提出一个好问题?

保持开放的心态

您的问题的答案可能并不总是您想要的答案,但这并不意味着它是错误的。一个决定性的答案并不总是可能的。如有疑问,请人们引用他们的资料来源,或解释他们是如何/从哪里学到东西的。即使我们不同意您的观点,或者确切地告诉您您想听到的内容,请记住:我们只是想提供帮助。