none
SQL server management studio 17.3出现错误 RRS feed

  • 问题

  • 打开的时候,出现如下错误

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

    无法打开连接对话框。

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

    未将对象引用设置到对象的实例。 (Microsoft.SqlServer.Management.SqlStudio)

    ------------------------------
    程序位置:

       在 Microsoft.SqlServer.Management.SqlStudio.ConnectToOe()

    连接建立后,出现如下错误:

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

    找不到服务“Microsoft.SqlServer.Management.IRegistrationService” (Microsoft.SqlServer.Management.SDK.SqlStudio)

    ------------------------------
    程序位置:

       在 Microsoft.SqlServer.Management.ServiceProvider.GetService[T](IServiceProvider serviceProvider, Boolean throwIfNotFound)
       在 Microsoft.SqlServer.Management.SqlStudio.Explorer.NavigationService.Initialize()
       在 Microsoft.SqlServer.Management.SqlStudio.Explorer.NavigationService.GetView(String urnPath)
       在 Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.NavigableItemBuilder.<GetColumnsFromNavigationService>d__11.MoveNext()
       在 Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.NavigableItemBuilder.AddFields(List`1 list, IEnumerable`1 fields, IDictionary`2 allValidFields, AddFieldsFlags flags)
       在 Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.NavigableItemBuilder.GetFields(INodeInformation source, Dictionary`2& allValidColumns)
       在 Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.NavigableItemBuilder.BuildDynamicItemWithQuery(IList`1 nodes, INodeInformation source, INavigableItem sourceItem, String urnQuery, Boolean registerBuilder, Boolean registerBuiltItems)
       在 Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.IntegrationServicesNavigableItemBuilder.Build(IList`1 nodes, INodeInformation source, INavigableItem sourceItem, IFilterProvider filter)
       在 Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.NavigableItem.RequestChildren(IGetChildrenRequest request)
       在 Microsoft.SqlServer.Management.UI.VSIntegration.ObjectExplorer.ExplorerHierarchyNode.BuildChildren(WaitHandle quitEvent)

    求解答!


    2017年10月25日 19:12

全部回复

  • Hi cbc westwolf,

    从错误日志来看,这个问题应该是出在SSMS调用dll文件的过程中,你有没有以管理员身份运行SSMS?另外到C:\Program Files (x86)\Microsoft SQL Server\140\Tools\Binn\ManagementStudio文件夹下看一下Microsoft.SqlServer.Management.Sdk.SqlStudio.dll在不在,如果不在,修复一下SSMS。

    你的机器上有安装什么杀毒软件吗? 杀毒软件也可能造成这种问题,你可以尝试先关闭杀毒软件测试一下,如果是杀毒软件的问题,可以看下能不能加入杀软的白名单。

    Best Regards,

    Teige


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2017年10月26日 2:00
    版主
    1. 以管理员身份运行SSMS也会出现同样的问题
    2. Microsoft.SqlServer.Management.Sdk.SqlStudio.dll文件存在的
    3. 机器是win10 ,只装了defender

    另外,我是先装的SQL server 2017 developer版的,有没有可能会有什么关系?


    2017年10月26日 3:38
  • Hi cbc westwolf,

    这个和SQL Server 2017 developer版本是没有关系的,我的电脑的环境和你类似,也是Win10 + SQL Server2017 developer + SSMS 17.3,你的SSMS17.3是全新安装还是从17.2升级上去的啊,你可以尝试修复一下。还有另外一种可能性是这个文件损坏了,你可以从另一台机器上copy一个过来。

    Best Regards,

    Teige


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2017年10月26日 8:10
    版主
  • 是全新安装的

    我试了一下从另一个机器上copy这个文件,但还是一样的错误

    2017年10月26日 10:22
  • 如果强行创建新的数据库,会出现如下错误

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

    数据库 "cbc_hw1" 的 创建 失败。  (Microsoft.SqlServer.Smo)

    ------------------------------
    有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=14.0.17199.0+((SSMS_Rel).171004-0254)&EvtSrc=Microsoft.SqlServer.Management.Smo.ExceptionTemplates.FailedOperationExceptionText&EvtID=创建+Database&LinkId=20476

    ------------------------------
    程序位置:

       在 Microsoft.SqlServer.Management.Smo.SqlSmoObject.CreateImpl()
       在 Microsoft.SqlServer.Management.SqlManagerUI.CreateDatabaseData.DatabasePrototype.ApplyChanges(Control marshallingControl)
       在 Microsoft.SqlServer.Management.SqlManagerUI.CreateDatabase.DoPreProcessExecution(RunType runType, ExecutionMode& executionResult)
       在 Microsoft.SqlServer.Management.SqlMgmt.SqlMgmtTreeViewControl.DoPreProcessExecutionAndRunViews(RunType runType)
       在 Microsoft.SqlServer.Management.SqlMgmt.SqlMgmtTreeViewControl.ExecuteForSql(PreProcessExecutionInfo executionInfo, ExecutionMode& executionResult)
       在 Microsoft.SqlServer.Management.SqlMgmt.SqlMgmtTreeViewControl.Microsoft.SqlServer.Management.SqlMgmt.IExecutionAwareSqlControlCollection.PreProcessExecution(PreProcessExecutionInfo executionInfo, ExecutionMode& executionResult)
       在 Microsoft.SqlServer.Management.SqlMgmt.ViewSwitcherControlsManager.RunNow(RunType runType, Object sender)

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

    执行 Transact-SQL 语句或批处理时发生了异常。 (Microsoft.SqlServer.ConnectionInfo)

    ------------------------------
    程序位置:

       在 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType, Boolean retry)
       在 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(StringCollection sqlCommands, ExecutionTypes executionType, Boolean retry)
       在 Microsoft.SqlServer.Management.Smo.ExecutionManager.ExecuteNonQuery(StringCollection queries, Boolean retry)
       在 Microsoft.SqlServer.Management.Smo.SqlSmoObject.ExecuteNonQuery(StringCollection queries, Boolean includeDbContext, Boolean executeForAlter)
       在 Microsoft.SqlServer.Management.Smo.SqlSmoObject.CreateImplFinish(StringCollection createQuery, ScriptingPreferences sp)
       在 Microsoft.SqlServer.Management.Smo.SqlSmoObject.CreateImpl()

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

    数据库 'cbc_hw1' 已存在。请选择其他数据库名称。 (.Net SqlClient Data Provider)

    ------------------------------
    有关帮助信息,请单击: http://go.microsoft.com/fwlink?ProdName=Microsoft%20SQL%20Server&ProdVer=14.00.1000&EvtSrc=MSSQLServer&EvtID=1801&LinkId=20476

    ------------------------------
    服务器名称: CBC-DESKTOP
    错误号: 1801
    严重性: 16
    状态: 3
    行号: 1


    ------------------------------
    程序位置:

       在 Microsoft.SqlServer.Management.Common.ConnectionManager.ExecuteTSql(ExecuteTSqlAction action, Object execObject, DataSet fillDataSet, Boolean catchException)
       在 Microsoft.SqlServer.Management.Common.ServerConnection.ExecuteNonQuery(String sqlCommand, ExecutionTypes executionType, Boolean retry)

    2017年10月26日 10:45
  • Hi cbc westwolf,

    你可以尝试重新安装一下试试。

    Best Regards,

    Teige


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2017年11月7日 8:39
    版主
  • Hi cbc westwold,

    针对这个错误,【找不到服务“Microsoft.SqlServer.Management.IRegistrationService” 】

    我尝试了以下办法:

    1. 彻底卸载 sqlserver,然后重新安装

    2. 重新运行安装程序,选择修复模式再装一下

    但是问题都没有解决,而且大家提到的 Microsoft.SqlServer.Management.Sdk.SqlStudio.dll 文件也存在。

    这个时候,可以考虑下卸载 SQL server management studio,然后重新安装,可能会解决上述问题。

    2019年2月20日 9:02
  • 把windows defender的实时保护关了试试, 我和你的情况一模一样, 关掉后就好了
    2019年10月14日 5:15