2017-10-09 100 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 –