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 Publish 或 Script 在部署期間設定。 如需將 SQLCMD 變數新增至 SQL 專案的詳細資訊,請參閱 SQL 項目檔。
公用程式命令
版本
將 sqlpackage 版本顯示為組建編號。 可用於互動式提示和自動化管線。
SqlPackage /Version
說明
您可以使用 /?
或 /help:True
來顯示 SqlPackage 使用方式資訊。
SqlPackage /?
對於特定動作特定的參數和屬性資訊,除了該動作的參數之外,請使用 help 參數。
SqlPackage /Action:Publish /?
結束代碼
SqlPackage 命令傳回下列結束代碼:
- 0 = 成功
- 非零 = 失敗
下一步
- 深入了解 SqlPackage Extract
- 深入了解 SqlPackage Publish
- 深入了解 SqlPackage Export
- 深入了解 SqlPackage Import
- 深入了解對 SqlPackage 的問題進行疑難排解
- 在 DacFx GitHub 存放庫中對 SqlPackage 分享意見反應