1

當在Visual Studio 2012中將架構比較工具與SSDT一起使用來更新數據庫項目並更改本地數據庫上的架構對象時,該架構從對象聲明中「丟失」。我使用Windows帳戶連接到本地SQL Server實例,並且此帳戶在要比較的數據庫上具有默認的dbo架構。SSDT架構比較更新從對象中移除架構

例如,本地存儲過程的定義可能是:

CREATE PROCEDURE [dbo].[SetPriceBounds] 

但是當這是使用的架構添加到數據庫中的項目進行比較,就變成:

CREATE PROCEDURE SetPriceBounds 

當這種隨後部署到另一個SQL Server實例,它會失敗,並顯示錯誤:

The default schema does not exist.

當模式比較執行時,我需要保留dbo.前綴,歡迎任何想法。

+0

我想你已經找到了一個有趣的bug。他們可能從來沒有考慮過沒有默認模式。 – David

+0

如果您查看數據庫項目的屬性,則會出現「默認模式」字段。嘗試將其改爲無意義值(即不存在的模式)並查看比較的行爲。 –

+0

謝謝你的建議,本;但它沒有任何區別。 – Jason

回答

0

通過將部署目標數據庫上的默認模式設置爲dbo,以便執行部署的用戶解決了此問題。我不相信這是解決問題的正確方法,但它有效。