2014-09-26 91 views
4

我想編寫兩個SSDT項目之間的模式比較產生的更改,但當源和目標都是SSDT項目時,「生成腳本」按鈕呈灰色/禁用。腳本模式比較兩個SSDT項目之間的變化

「更新」按鈕不變灰。如果我想直接更新,我可以。但是我需要這些腳本,因爲我正在使用這兩個不在同一網絡上的管理兩個數據庫環境(但需要與db模式和代碼升級保持同步)。另外,爲了驗證和加強,如果我的目標是真實的數據庫而不是項目,我可以生成腳本。它只有當目標是一個我不能生成腳本的項目時。不幸的是,我不能直接連接到目標數據庫。

我真的很想避免爲了生成腳本而在本地爲每個客戶端數據庫環境創建數據庫副本(我已經爲每個客戶端分配了SSDT項目)。

這是故意限制嗎?似乎很奇怪。我不能成爲第一個必須管理我無法直接從我的開發機器連接到的客戶端架構的人。

+0

我覺得在項目之間生成差異腳本是沒有意義的。您不會像使用數據庫那樣更新項目。你可以創建你的調試版本,並對此做一個比較? – 2014-09-26 14:08:08

回答

4

根據Microsoft's page on Schema Compare(強調):

「你可以從架構直接更新的目標,如果目標是數據庫或項目比較窗口,或者如果目標可以生成一個更新腳本是一個數據庫或數據庫文件

您描述的行爲似乎是功能如何工作。

但是,如果你可以建立/編譯你的項目,這將產生.dacpac files(又名數據庫文件),它可以比較並生成一個腳本,或者使用的模式比較,也出現command line version of SSDT (sqlpackage.exe)似乎支持這個來源和.dacpac的目標。

希望有所幫助。

+0

我們採取了避免這種限制的環境戰略,採取了不同的方向。很高興知道這個限制對於未來的項目來說是有的。 – user2245759 2014-10-29 14:45:15