SQL Server Management Studio 中的結構描述比較(預覽)

適用於: SQL ServerAzure SQL DatabaseAzure SQL 受控執行個體Azure Synapse Analytics

Schema Compare 讓你能比較兩個資料庫定義。 比較的來源與目標可以是連接資料庫、SQL 資料庫專案或 .dacpac 檔案的任意組合。 比較結束後,結果會呈現一組動作,使目標與來源相同。 資料庫模型間的差異會以原始碼控制差異的方式呈現。

如果 schema 比較目標是 SQL 專案或資料庫,你可以直接從 Schema Compare 介面更新目標,或產生有相同效果的更新腳本。

SQL Server Management Studio 中 schema 比較視窗的截圖,顯示來源與目標的比較。

架構比較提供以下功能:

  • 比較兩個 .dacpac 檔案、資料庫或 SQL 資料庫專案的結構。
  • 將結果視為一組將目標與來源進行匹配的動作。
  • 選擇性排除結果中列出的動作。
  • 設定控制比較範圍的選項。
  • 直接將變更套用至目標,或產生腳本以在稍後套用變更。
  • 把比較 .scmp 檔案存下來方便重複使用。

先決條件

啟動架構比較

你可以從多個入口點在 SSMS 中開啟 Schema Comparison。

物件總管

在 物件總管 中右鍵點擊資料庫,選擇 TasksSchema Compare (Preview)。 所選資料庫會自動設定為來源。

方案總管

在 方案總管 右鍵點擊 SQL 資料庫專案,選擇 Schema Compare (Preview)。 所選專案會自動設為原始碼。

備註

要在 方案總管 中處理 SQL 資料庫專案,你需要 Database DevOps 工作負載。

工具選單

在 工具 選單中,選擇 「結構比較(預覽)」。 結構比較視窗開啟時沒有預設來源或目標。

選擇來源與目標

Schema Compare 開啟後,選擇比較的來源與目標。 每個專案都可以是連接的資料庫、 .dacpac 檔案或 SQL 資料庫專案。

 來源與目標選擇選項的截圖,顯示資料庫、資料層應用程式(.dacpac)及資料庫Project選項。

  • 資料庫:連接一個正在執行的資料庫實例。 來源是你想用來作為目標變更基礎的資料庫定義。
  • 資料層應用程式(.dacpac):瀏覽至已 .dacpac 編譯的檔案。 A .dacpac 包含資料庫結構的快照。
  • Database Project:選擇一個開放的 SQL 資料庫project。 需要 資料庫 DevOps 工作負載。

目標就是你想評估並可能對它做修改的資料庫定義。

運行與評論比較

在工具列中選擇 「比較 」開始比較流程。

比較結束後, 結果 面板會顯示來源與目標之間的結構差異。 比較結果會依照動作將所有差異分組,例如刪除、變更或新增。

每一列都標示來源或目標結構中的物件(或兩者)以及程序對目標結構所採取的動作,使目標物件與來源物件相同。 如果你重新命名物件或移到新架構,來源名稱和目標名稱就會不同。 來源名稱以粗體顯示以強調差異。

預設情況下,結果清單會隱藏兩個結構中相同或不支援更新的物件(例如內建物件)。 在工具列中選擇適當的篩選按鈕來顯示這些物件。

若要變更群組偏好設定,請選取工具列中的 [群組結果] 下拉式清單。 選擇 「類型 」以依物件類型(如資料表、檢視或儲存程序)將結果分組。

排除差異

預設情況下,更新目標動作包含其範圍上的所有差異。 要排除不想同步的差異,請清除每列的 Include 欄位。 這排立刻變成灰色。當 Schema Compare 更新目標時,它不會考慮該列是否有待處理的變更。

如果被排除的列有相依物件,例如被 View 列參考的 Table 列,該排除列會被停用,但直到你也取消勾選所有依賴列,該列的勾選框才會被清除。 如果你重構一列,例如重新命名或移到其他結構,該列及其相依子列的勾選框會被停用。

比較選項

在工具列中選擇 選項 ,以設定哪些物件要比較,哪些差異會被忽略。 這些選項包括:

  • 忽略空白
  • 忽略分區配置
  • 忽略欄位順序

你也可以設定比較中包含的物件類型,例如資料表、儲存程序、索引、權限及使用者自訂類型。

套用變更

要更新目標的結構,你有兩個選項:

  • 套用:直接從結構比較視窗將變更套用到目標資料庫或專案。
  • Generate Script:產生一個 Transact-SQL 腳本,捕捉相同的變更,之後可以檢視並執行。

生成的腳本會出現在 Transact-SQL 編輯器中,你可以檢查並對資料庫執行。

儲存比較

你可以將 Schema Compare 的比較定義存為 .scmp 檔案,稱為 schema compare 檔案。 此檔案以 XML 格式儲存比較設定資訊,內容包括:

  • 來源與目標連接資訊
  • 比較選項
  • 排除的物件類型

在 SSMS 中開啟 .scmp 一個檔案,之後再執行相同的比較或與其他人分享比較結果。 如果你將檔案儲存.scmp為 SQL 資料庫專案的一部分,該.scmp檔案會出現在 方案總管 中。 打開檔案會啟動 Schema Compare,並載入比較設定。