将数据库部署到Azure SQL失败,找不到sp_MSforeachtable

dot*_*sch 2 sql-server azure azure-sql-database azure-devops azure-pipelines-release-pipeline

我正在尝试使用.dacpac和发布配置文件到Azure SQL数据库发布SQL Server 数据库.我们在很长一段时间内一直在使用SQL Server,没有问题,现在我们正在评估Azure和AWS,以确定哪个最适合我们的需求.

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

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

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

谢谢

Fre*_*rik 10

此功能未在 Azure 中的 SQL 数据库中实现。

您可以在此位置找到它的副本:https : //gist.github.com/metaskills/893599

  • 我很好奇是否有人知道该要点的分支以及每个的优缺点。 (2认同)

Rob*_*gan 8

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

  • 如果您希望使用编程方法,也可以使用PowerShell脚本.https://docs.microsoft.com/en-us/azure/sql-database/scripts/sql-database-import-from-bacpac-powershell (2认同)