SQL Azure导出数据层应用程序并导入到本地SQL Server

时间:2019-03-07 09:33:29

标签: azure-sql-database

我有一个SQL Azure数据库。我可以使用“任务”>“导出数据层应用程序”来导出数据库。成功了。

然后我尝试在本地SQL服务器中使用“导入数据层应用程序”,但出现以下错误:

  

无法导入包。警告SQL0:一个项目,该项目指定   目标平台可能会遇到Microsoft Azure SQL Database v12   SQL Server 2008的兼容性问题。警告SQL72012:   对象[db_Data]存在于目标中,但即使删除也不会被删除   尽管您选择了“为以下对象生成下降语句   在目标数据库中,但不在“源”复选框中。   警告SQL72012:目标中存在对象[db_Log],但是它   即使您选择了“生成放置”   目标数据库中但是   不在来源”复选框中。错误SQL72014:.Net SqlClient数据   提供者:消息102,级别15,状态1,第1行附近的语法不正确   '凭据'。错误SQL72045:脚本执行错误。被执行   脚本:CREATE DATABASE SCOPED CREDENTIAL [databasenameAzureStorageCredential]       WITH IDENTITY = N'SHARED ACCESS SIGNATURE';

我有SQL Server Management Studio 14.0.17289.0,一切都是最新的。

我已经阅读了关于Stack Overflow的不同文章,并做了一些谷歌搜索,但是不确定前进的最佳方法。我该怎么解决?

2 个答案:

答案 0 :(得分:0)

您的本地SQL服务器数据库和Azure SQL服务器数据库似乎在兼容性模式上有所不同。检查您的兼容性级别,以及是否不匹配here是解决该问题的资源。该错误是因为您使用SSMS版本“ X”针对Azure SQL版本“ Y”生成了bacpac。尝试使用SSMS版本“ Y”生成相同的bacpac,它对我有用。

答案 1 :(得分:0)

请从http://localhost:8080下载最新版本的SQL Server Management Studio,以获得最佳的Azure SQL数据库用户体验。 SSMS v14太旧了。当前的SSMS版本是v17.9。

在导出数据库之前,删除(删除)名为“ databasenameAzureStorageCredential”的数据库范围凭证。以下查询将为您提供创建的凭据列表。

SELECT * FROM sys.database_scoped_credentials 

通常,在导出数据库之前,需要删除对外部源的引用。