Share via


SqlPackage CLI 參考

SqlPackage 是適用於 Windows、Linux 和 macOS 環境中的資料庫可移植性和部署的命令行公用程式。 SqlPackage 命令行介面 (CLI) 會剖析參數、屬性和 SQLCMD 變數的每個調用。

SqlPackage {parameters} {properties} {SQLCMD variables}
  • 參數 可用來指定要執行的動作、來源和目標資料庫,以及其他一般設定。
  • 屬性 可用來修改動作的預設行為。
  • SQLCMD 變數 可用來將值傳遞至來源檔案中的 SQLCMD 變數。

若要建立 SqlPackage 命令,您必須指定動作及其其他參數。 您可以選擇性地新增屬性和 SQLCMD 變數,以進一步自訂命令。

在下列範例中,SqlPackage 可用來建立目前資料庫架構的 .dacpac 檔案:

SqlPackage /Action:Extract /TargetFile:"C:\sqlpackageoutput\output_current_version.dacpac" \
 /SourceServerName:"localhost" /SourceDatabaseName:"Contoso" \
 /p:IgnoreUserLoginMappings=True /p:Storage=Memory

在該範例中,參數為:

  • /Action:Extract
  • /TargetFile:"C:\sqlpackageoutput\output_current_version.dacpac"
  • /SourceServerName:"localhost"
  • /SourceDatabaseName:"Contoso"

在該範例中,屬性為:

  • /p:IgnoreUserLoginMappings=True
  • /p:Storage=Memory

SqlPackage 動作

  • 版本:傳回 SqlPackage 應用程式的組建編號。

  • 解壓縮:建立資料層應用程式 (.dacpac) 檔案,其中包含已連接 SQL 資料庫的架構或架構和使用者資料。

  • Publish:以累加方式更新資料庫結構描述,以符合來源 .dacpac 檔案的結構描述。 如果資料庫不存在伺服器上,發行作業會加以建立。 否則,將更新現有的資料庫。

  • 匯出:將連接的 SQL 資料庫 (包括資料庫架構和使用者資料) 匯出至 BACPAC 檔案 (bacpac)。

  • 匯入將 BACPAC 檔案的結構和資料表資料匯入至新的使用者資料庫。

  • DeployReport:建立 XML 報告,表示發佈動作將進行的變更。

  • DriftReport:建立 XML 報告,表示自上次註冊以來套用於已註冊資料庫的變更。

  • Script:建立 Transact-SQL 累加更新指令碼,這個指令碼會更新目標的結構描述以符合來源的結構描述。

注意

雖然 Microsoft Entra ID 是 Azure Active Directory(Azure AD)的新名稱,但為了防止破壞現有的環境,Azure AD 仍會保留在某些硬式編碼元素中,例如 UI 字段、連線提供者、錯誤碼和 Cmdlet。 在本文中,這兩個名稱是可互換的。

參數

某些參數會在 SqlPackage 動作之間共用。 以下是摘要參數的資料表,如需詳細資訊,請按一下特定動作頁面。

參數 簡短形式 擷取 Publish 匯出 匯入 DeployReport DriftReport 指令碼
/AccessToken: /at x x x x x x x
/ClientId: /cid x
/DeployScriptPath: /dsp x x
/DeployReportPath: /drp x x
/Diagnostics: /d x x x x x x x
/DiagnosticsFile: /df x x x x x x x
/MaxParallelism: /mp x x x x x x x
/OutputPath: /op x x x
/OverwriteFiles: /of x x x x x x
/Profile: /pr x x x
/Properties: /p x x x x x x
/Quiet: /q x x x x x x x
/Secret: /secr x
/SourceConnectionString: /scs x x x x x
/SourceDatabaseName: /sdn x x x x x
/SourceEncryptConnection: /sec x x x x x
/SourceFile: /sf x x x x
/SourcePassword: /sp x x x x x
/SourceServerName: /ssn x x x x x
/SourceTimeout: /st x x x x x
/SourceTrustServerCertificate: /stsc x x x x x
/SourceUser: /su x x x x x
/TargetConnectionString: /tcs x x x x
/TargetDatabaseName: /tdn x x x x x
/TargetEncryptConnection: /tec x x x x x
/TargetFile: /tf x x x x
/TargetPassword: /tp x x x x x
/TargetServerName: /tsn x x x x x
/TargetTimeout: /tt x x x x x
/TargetTrustServerCertificate: /ttsc x x x x x
/TargetUser: /tu x x x x x
/TenantId: /tid x x x x x x x
/UniversalAuthentication: /ua x x x x x x x
/Variables: /v x x

屬性

SqlPackage 動作支援大量屬性,以修改動作的預設行為。 選擇性使用屬性是藉由新增 /p:PropertyName=Value 至命令行來完成。 可以指定多個屬性,而且可以多次指定某些屬性(例如 /p:TableData=Product /p:TableData=ProductCategory)。 如需屬性的詳細資訊,請參閱特定的動作頁面。

SQLCMD 變數

SQLCMD 變數可以從 SQL 專案內建到 .dacpac 檔案中,然後使用 SqlPackage PublishScript 在部署期間設定。 如需將 SQLCMD 變數新增至 SQL 專案的詳細資訊,請參閱 SQL 項目檔

公用程式命令

版本

將 sqlpackage 版本顯示為組建編號。 可用於互動式提示和自動化管線

SqlPackage /Version

說明

您可以使用 /?/help:True 來顯示 SqlPackage 使用方式資訊。

SqlPackage /?

對於特定動作特定的參數和屬性資訊,除了該動作的參數之外,請使用 help 參數。

SqlPackage /Action:Publish /?

結束代碼

SqlPackage 命令傳回下列結束代碼:

  • 0 = 成功
  • 非零 = 失敗

下一步