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 檔案,之後再執行相同的比較,或與其他人分享比較結果。