我有一个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的不同文章,并做了一些谷歌搜索,但是不确定前进的最佳方法。我该怎么解决?
答案 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
通常,在导出数据库之前,需要删除对外部源的引用。