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 应用程序的生成号。

  • 提取:创建包含连接的 SQL 数据库中的架构或架构和用户数据的数据层应用程序(.dacpac)文件。

  • 发布:以增量方式更新数据库架构以匹配源 .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 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
/DiagnosticsPackageFile: /dpf 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 发布脚本进行部署期间设置。 有关将 SQLCMD 变量添加到 SQL 项目的详细信息,请参阅 SQL 项目文档

实用工具命令

版本

将 sqlpackage 版本显示为内部版本号。 可用于交互式提示和 自动化管道

SqlPackage /Version

帮助

可以使用 /?/help:True来显示 SqlPackage 使用情况信息。

SqlPackage /?

对于特定于特定作的参数和属性信息,除了该作的参数之外,还使用 help 参数。

SqlPackage /Action:Publish /?

退出代码

SqlPackage 命令返回以下退出代码:

  • 0 = 成功
  • nonzero = failure

后续步骤