首页 > 解决方案 > 将快照导入 SQL Server 2019 时出错

问题描述

当我想将快照(bacpac)文件中的数据导入 SQL Server 2019 时出现错误。

它在我的两台不同的 PC 上发生了两次。

如果有任何解决方案,请帮助我。

非常感谢!

错误 :

在此处输入图像描述

错误详情 :

在此处输入图像描述

以下是错误详细信息:

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

你调用的对象是空的。(Microsoft.Data.Tools.Schema.Sql)

节目地点:

在 Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeploymentPlanGenerator.DeploymentScriptDomGenerator.GenerateFragment(Int32 操作,IModelElement 元素) 在 Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeploymentPlanGenerator.DeploymentScriptDomGenerator.GenerateSteps(Int32 操作,IModelElement 元素)在 Microsoft.Data.Tools.Schema.Sql.Deployment.OrderedStepGenerator.Add(DeploymentScriptDomGenerator scriptDom,IModelElement 元素,Int32 操作)在 Microsoft.Data.Tools.Schema.Sql.Deployment.Analyzers.PlanMediator.BuildDependencyOrderedSteps(Int32 操作,列表1 classOrder, List1 operationOrder,字典2 changes, Boolean preserveGraphs, Dictionary2& 相关,字典2& related) at Microsoft.Data.Tools.Schema.Sql.Deployment.Analyzers.PlanMediator.BuildOperations() at Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeploymentPlanGenerator.OnGeneratePlan() at Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeploymentPlanGenerator.GeneratePlan(List1 滴)在 Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeployment.Controller.CreatePlan() 在 Microsoft.SqlServer.Dac.DeployOperation 的 Microsoft.Data.Tools.Schema.Sql.Deployment.SqlDeployment.BuildPlan()。 <>c__DisplayClass3.<>c__DisplayClass5.b__1() 在 Microsoft.Data.Tools.Schema.Sql.Dac.OperationLogger.Capture(Action action) 在 Microsoft.SqlServer.Dac.DeployOperation.<>c__DisplayClass3.b__0(对象操作,CancellationToken token) 在 Microsoft.SqlServer.Dac.Operation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context) 在 Microsoft.SqlServer.Dac.ReportMessageOperation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext context) 在 Microsoft.SqlServer .Dac.OperationExtension.CompositeOperation.Microsoft.SqlServer.Dac.IOperation。在 Microsoft.SqlServer.Dac.DeployOperation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext 上下文)的 Microsoft.SqlServer.Dac.OperationExtension.CompositeOperation.Microsoft.SqlServer.Dac.IOperation.Run(OperationContext 上下文)运行(OperationContext 上下文) ) 在 Microsoft.SqlServer.Dac.OperationExtension.Execute(IOperation operation, DacLoggingContext loggingContext, CancellationToken cancelToken) 在 Microsoft.SqlServer.Dac.DacServices.InternalDeploy(IPackageSource packageSource, Boolean isDacpac, String targetDatabaseName, DacDeployOptions options, CancellationToken cancellationToken, DacLoggingContext loggingContext,行动Microsoft.SqlServer.Dac.DacServices.InternalDeploy(IPackageSource packageSource, Boolean isDacpac, String targetDatabaseName, DacDeployOptions options, Microsoft.SqlServer.Dac.DacServices.InternalDeploy(IPackageSource packageSource, Boolean isDacpac, CancellationToken cancelToken、DacLoggingContext loggingContext、ActionMicrosoft.SqlServer.Dac.DacServices.InternalDeploy(IPackageSource packageSource, Boolean isDacpac, String targetDatabaseName, DacDeployOptions options, Microsoft.SqlServer.Dac.DacServices.InternalDeploy(IPackageSource packageSource, Boolean isDacpac, CancellationToken cancelToken、DacLoggingContext loggingContext、Action行动行动3 reportPlanOperation, Boolean executePlan) at Microsoft.SqlServer.Dac.DacServices.ImportBacpac(BacPackage package, String targetDatabaseName, DacImportOptions importOptions, NullableMicrosoft.SqlServer.Management.Dac.DacWizard.ImportDatabase.DoWork() 的 Microsoft.SqlServer.Management.Dac.DacWizard.ImportDatabase.DoWork() 处的 1 个取消令牌) .TaskForms.SimpleWorkItem.Run()

标签: sql-server

解决方案


我遇到了同样的问题,并且能够使用以前版本的 SSMS(SQL Server Management Studio)解决这个问题,而不是 SQL Server 版本。以前的 SSMS 版本可以在这里下载:

https://docs.microsoft.com/en-us/sql/ssms/release-notes-ssms?view=sql-server-ver15#1791

ATTOW,当前版本是18.5。它适用于我的版本 17.9.1 和 18.4。

这适用于我在 SQL Server 2017 和 2019 上,这是 SSMS 的问题,而不是 SQL Server 版本。

我还尝试了带有 SQL Dacpac 扩展 ( https://github.com/microsoft/azuredatastudio/tree/master/extensions/dacpac ) 的 Azure Data Studio,但它失败并出现与最新 SSMS 版本相同的错误。有一个问题开放:https ://github.com/microsoft/azuredatastudio/issues/9522

或者,不要安装 SSMS,而是sqlpackagehttps://docs.microsoft.com/en-us/sql/tools/release-notes-sqlpackage?view=sql-server-ver15#184-sqlpackage(版本 18.4)安装并运行手动命令。就像是:

sqlpackage.exe /a:Import /df:"import.log" /sf:"mybacpac-2020-04-26.bacpac" /tcs:"Server=.;Database=mybacpac;Integrated Security=true"


推荐阅读