2017-10-09 161 views
1

我试图使用.dacpac发布SQL Server数据库并将配置文件发布到Azure SQL数据库。一段时间以来,我们一直在内部使用SQL Server,没有任何问题,现在我们正在评估Azure和AWS,以查看哪些最适合我们的需求。将数据库部署到Azure SQL失败,sp_MSforeachtable未找到

我们有一个SQL Server数据库项目,并希望将其部署到Azure SQL数据库,但无法执行由SSDT生成的脚本。这是因为生成的脚本包含对Azure SQL中不存在的存储过程sp_MSforeachtable的调用。

我也将目标平台从SQL Server 2016更改为Azure SQL V12。我正在使用Visual Studio 2017的发布配置文件以及使用Azure SQL数据库部署任务从VSTS发布管理中尝试此操作。当然通过在任务中提供必要的.dacpacpublish.xml文件。

我知道我可以手动添加存储过程,但它似乎并不是这些发布/部署方法的意图。有没有人有任何想法?

谢谢

+0

那是什么可以重现此问题的具体步骤和代码:

您可以在这个位置找到它的一个副本? –

+0

如果您直接通过Visual Studio发布它,结果如何? –

+0

我无法用简单的数据库项目(表和存储过程)重现此问题。您可以在OneDrive上共享详细的构建和发布日志吗? (设置/添加system.debug变量为true) –

回答

2

sp_MSforeachtable是Master数据库中未记录的存储过程。这显然还没有被移植到Azure SQL。我相信你需要手动添加到主数据库。一旦完成,您的DACPAC应该可以在您自己的Azure SQL数据库上正常工作。我没有看到手动添加sp_MSforeachtable的问题。 DACPAC旨在保持与您的数据库同步,而不是Master数据库。

+0

如果您希望使用编程方法,还可以使用PowerShell脚本。 https://docs.microsoft.com/en-us/azure/sql-database/scripts/sql-database-import-from-bacpac-powershell –