共用方式為


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 動作

行動 Description
版本 回傳 SqlPackage 應用程式的建置號。
擷取 建立一個資料層應用程式(.dacpac)檔案,包含結構或結構,以及來自連接的 SQL 資料庫中的使用者資料。
發佈 逐步更新資料庫結構,使其與原始檔案 .dacpac 的結構相符。 如果伺服器上沒有資料庫,發行作業就會建立它。 否則,會更新現有的資料庫。
匯出 將連接的 SQL 資料庫(包括資料庫結構與使用者資料)匯出為 BACPAC 檔案(.bacpac)。
匯入 將 BACPAC 檔案中的結構與資料匯入新的使用者資料庫。
DeployReport 建立一份 XML 報告,表示發佈動作所帶來的變更。
DriftReport 建立一份 XML 報告,表示自上次註冊以來對已註冊資料庫所施加的變更。
文稿 建立 Transact-SQL 累加式更新腳本,以更新目標的架構以符合來源的架構。

注意

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

參數

某些參數會在 SqlPackage 動作之間共用。 下表總結了這些參數。 欲了解更多資訊,請使用表格標題中的連結前往具體行動頁面。

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

屬性

SqlPackage 動作支援許多屬性來修改動作的預設行為。 在命令列新增 /p:PropertyName=Value 功能,可以選擇使用屬性。 你可以指定多個屬性,並且某些屬性可以指定不只一次。 例如,您可以使用 /p:TableData=Product /p:TableData=ProductCategory。 欲了解更多物業資訊,請參閱具體行動頁面。

SQLCMD 變數

你可以從 SQL 專案中將 SQLCMD 變數建入 .dacpac 檔案。 在部署時使用 SqlPackage PublishScript 設定這些變數。 欲了解更多關於將 SQLCMD 變數加入 SQL 專案的資訊,請參閱 SQL 資料庫專案擴充功能

公用程式命令

版本

將 sqlpackage 版本顯示為組建編號。 在互動提示和 自動化流程中使用它。

SqlPackage /Version

幫助

使用 /?/help:True 顯示 SqlPackage 使用資訊。

SqlPackage /?

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

SqlPackage /Action:Publish /?

結束代碼

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

  • 0 = 成功
  • 非零=失效