sql-server - 将快照导入 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, List
1 operationOrder,字典2 changes, Boolean preserveGraphs, Dictionary
2& 相关,字典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(List
1 滴)在 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, Nullable
Microsoft.SqlServer.Management.Dac.DacWizard.ImportDatabase.DoWork() 的 Microsoft.SqlServer.Management.Dac.DacWizard.ImportDatabase.DoWork() 处的 1 个取消令牌) .TaskForms.SimpleWorkItem.Run()
解决方案
我遇到了同样的问题,并且能够使用以前版本的 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,而是sqlpackage
从https://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"
推荐阅读
- sql - 为什么打开与我的数据库的连接需要这么长时间?
- sql - FETCH 抛出异常 java.sql.SQLSyntaxErrorException: ORA-00918: 列定义不明确
- python - Visual Studio Code python 调试超时
- javascript - firebase JavaScript SDK 通过网络是否安全?
- docker - 根工作区的含义 - 执行 docker run 命令
- java - 如何在maven项目中安装字体?
- count - Power BI - 如何根据我添加或删除的列获取正确的状态
- python - 根据不同的列值调用列名?
- laravel - 如何修复 laravel no command 'Redis::throttle'?
- php - mysql到msqli的转换