我正在尝试从Azure导出bacpac并在SQLEXPRESS 2016上本地恢复。当我尝试恢复它时,虽然我从SSMS中的导入数据层应用程序向导中收到以下错误:
无法导入包。
警告SQL72012:对象 [TestBacPacDB_Data]存在于目标中,但不会被删除 即使您选择了“为对象生成删除语句” 在目标数据库中,但不在源'检查中 框。
警告SQL72012:对象[TestBacPacDB_Log]存在于 目标,但即使你选择了它也不会被删除 '为目标数据库中的对象生成drop语句 但那不在源'
错误SQL72014:。Net SqlClient数据提供程序:消息33161,级别15,状态1,行1数据库 此版本的SQL不支持没有密码的主密钥 服务器。错误SQL72045:脚本执行错误。执行的脚本: 创建主键;
经过一番挖掘后,我发现数据库中已添加了凭据和主密钥。凭证名称引用了一个blob存储容器,所以我想也许审计是在某个时刻设置的,容器作为外部资源或类似的东西。
我想删除此凭据,以便我可以在本地恢复数据库,但数据库会抛出一个错误,指出它正在使用中。我已尝试禁用Azure中的日志记录,但仍无法删除凭据。
我知道有时Azure会关闭资源需要时间,所以也许这就是原因,但我想知道是否有其他人遇到类似的问题。
我正在努力避免为主密钥设置密码,因为我不像本问题那样在本地关注凭证:SSMS 2016 Error Importing Azure SQL v12 bacpac: master keys without password not supported
答案 0 :(得分:2)
最终,我们最终创建了一个主密钥。为了以这种方式在本地恢复我们的数据库,我们首先在SSMS中手动创建数据库,然后为其添加一个主密钥。这样可以使数据导入正常工作。
答案 1 :(得分:0)
我遇到了完全相同的问题,并尝试了各种各样的潜在修复程序。大多数都与更新系统,先制作副本等有关......而且绝对没有用。
虽然这很疯狂,但我最终解决它的唯一方法是手动编辑内部结构: