2013-07-10 67 views
8

我希望下面的比較不會顯示差異。根據MSDN (請參閱第7步),應該有一個SQLCMD變量函數可用,我找不到。本文檔適用於SQL 2010,但我使用的是2012版本。此頁面上似乎沒有2012版本的文檔。SQLCMD變量和SSDT模式比較問題

如何指定$(DatabaseName)的值,以便進行比較?我已經有了我的數據庫項目設置中指定的值。

SQL Schema Compare

+0

我不認爲你可以在項目和實時數據庫之間做到這一點。即使該頁面似乎暗示:「只有在比較兩個項目時才能指定SQLCMD變量」如果生成腳本來更新數據庫,會發生什麼情況? –

+0

另外,如果這是針對數據庫本地的表,爲什麼要指定數據庫名稱?只需使用「dbo.ClaimProvider」,你應該全部設置。我知道跨數據庫查詢的情況是不同的,但是這似乎並沒有跨越數據庫。 –

+0

@PeterSchott我做了很多的跨數據庫連接,所以它看起來更好,所有名稱一致,而不是在3和2部分名稱之間切換。 –

回答

3

您可以圍繞此模式比較你的開發數據庫,而不是項目,到現場數據庫。請記住,您必須首先將項目部署到開發數據庫。

僅供參考 - 變量未被替換的事實只是比較窗口中的一個問題。在比較過程中,變量不會導致錯誤的差異(換句話說,Schema Compare會在比較時替換變量),並且在更新目標數據庫時替換變量。

+0

我試圖捕獲開發人員在dev中修改的內容數據庫,然後更新該項目。如果我將該項目部署到開發中,是不是會消除它們的更改? –

+1

它可能是用於開發目的的任何服務器,甚至可能是本地數據庫實例或專用於模式比較的共享服務器。 – Keith

+0

或者這裏有一個想法...讓MS修復他們的比較功能中的錯誤大聲笑 – user5855178