如何:從資料庫中擷取 DAC

您可以使用 [擷取資料層應用程式] 精靈或 Windows PowerShell 指令碼,從現有的 SQL Server 資料庫中擷取資料層應用程式 (DAC) 封裝。 此擷取程序會建立 DAC 封裝檔案,其中包含資料庫物件及其相關執行個體層級元素的定義。 例如,DAC 封裝檔案會包含資料庫資料表、預存程序、檢視表、使用者以及對應至資料庫使用者的登入。

您可以從位於 SQL Azure 或是 SQL Server 2005 Service Pack 4 (SP4) 或更新版本之執行個體的資料庫中擷取 DAC。

[擷取資料層應用程式] 精靈不會在目前的 Database Engine 執行個體中註冊 DAC 定義。 如需有關註冊 DAC 的詳細資訊,請參閱<如何:將資料庫註冊為 DAC>。

使用 PowerShell 擷取 DAC

建立和執行指令碼

  1. 建立 ExtractDAC.ps1 檔案。

  2. 加入程式碼以建立 SMO Server 物件並將它設定為包含您想要從中擷取 DAC 之資料庫的執行個體。 此範例會將 Server 物件設定為本機電腦上的預設執行個體:

    ## Set a SMO Server object to the default instance on the local computer.
    CD SQLSERVER:\SQL\localhost\DEFAULT
    $srv = get-item .
    
  3. 加入程式碼以指定資料庫。 此範例會指定名為 MyDB 的資料庫:

    ## Specify the database to extract to a DAC.
    $dbname = "MyDB"
    
  4. 指定 DAC 的中繼資料。 此範例會指定 DAC 名稱、版本和描述:

    ## Specify the DAC metadata.
    $applicationname = "MyApplication"
    $version = "1.0.0.0"
    $description = "This DAC defines the database used by my application."
    
  5. 針對擷取的 DAC 封裝檔案指定路徑和檔案名稱。

    ## Specify the location and name for the extracted DAC package.
    $dacpacPath = "C:\MyDACs\MyApplication.dacpac"
    
  6. 加入程式碼以使用上述指定的資訊執行 Extract 方法。

    ## Extract the DAC.
    $extractionunit = New-Object Microsoft.SqlServer.Management.Dac.DacExtractionUnit($srv, $dbname, $applicationname, $version)
    $extractionunit.Description = $description
    $extractionunit.Extract($dacpacPath)
    
  7. 從您已載入 SQL Server PowerShell 嵌入式管理單元的 PowerShell 工作階段執行 ExtractDAC.ps1,或使用 sqlps 命令提示字元公用程式。

擷取資料層應用程式精靈

若要開啟擷取資料層應用程式精靈

  1. 在 [物件總管] 中,展開 [資料庫]、以滑鼠右鍵按一下資料庫、指向 [工作],然後按一下 [擷取資料層應用程式]

  2. 遵循精靈中的步驟,以便根據您所選取的資料庫建立 DAC 封裝。 如需詳細資訊,請參閱<擷取資料層應用程式精靈 F1 說明>。

變更記錄

更新的內容

加入了使用 PowerShell 的相關章節。