【问题标题】:Import Data-tier Application from Azure to local Sql Server 2014 fails将数据层应用程序从 Azure 导入本地 Sql Server 2014 失败
【发布时间】:2018-09-21 05:25:24
【问题描述】:
使用以下过程导出 azure sql 数据库并导入到 SQL Server 2014 的本地实例失败。我怎样才能成功地做到这一点?
- 将 Sql 数据库作为 bacpac 文件从 Azure 门户中导出到 blob 存储帐户。
- 进入 SSMS v17.6 > 右键/单击数据库 > 选择“导入数据层应用程序”
- 从 azure blob 存储或本地磁盘导入 bacpack 文件
【问题讨论】:
标签:
azure-sql-database
ssms
sql-server-2014
【解决方案1】:
请考虑在导出为 bacpac 之前删除数据库范围的凭据,如下所示:
DROP DATABASE SCOPED CREDENTIAL CredentialName
如果创建该范围凭据是为了创建外部数据源,那么您必须先删除它们。
DROP EXTERNAL DATA SOURCE SourceName
【解决方案2】:
正在导入本地 2014 实例。进口商不喜欢您的数据库中的 DATA SOURCE 或 SCOPED CREDENTIAL,尤其是给您错误的 SCOPED CREDENTIAL。您可以通过从 AZURE 中的数据库中删除 SCOPED CREDENTIAL 和数据源来避免此错误
在 azure db 上查看外部数据源 -> SELECT * FROM sys.external_data_sources;
删除 azure db 上的外部数据源 -> DROP EXTERNAL DATA SOURCE ds_name
在 azure db 上查看范围凭据 -> 从 sys.database_scoped_credentials 中选择 *
删除 azure db 上的范围凭据 -> DROP DATABASE SCOPED CREDENTIAL cred_name
然后导出数据层应用程序并在本地导入。