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作

Action 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 是的 是的 是的 是的 是的 是的 是的
/ClientId: /cid 是的
/DeployScriptPath: /dsp 是的 是的
/DeployReportPath: /drp 是的 是的
/Diagnostics: /d 是的 是的 是的 是的 是的 是的 是的
/DiagnosticsFile: /df 是的 是的 是的 是的 是的 是的 是的
/DiagnosticsPackageFile: /dpf 是的 是的
/MaxParallelism: /mp 是的 是的 是的 是的 是的 是的 是的
/OutputPath: /op 是的 是的 是的
/OverwriteFiles: /of 是的 是的 是的 是的 是的 是的
/Profile: /pr 是的 是的 是的
/Properties: /p 是的 是的 是的 是的 是的 是的
/Quiet: /q 是的 是的 是的 是的 是的 是的 是的
/Secret: /secr 是的
/SourceConnectionString: /scs 是的 是的 是的 是的 是的
/SourceDatabaseName: /sdn 是的 是的 是的 是的 是的
/SourceEncryptConnection: /sec 是的 是的 是的 是的 是的
/SourceFile: /sf 是的 是的 是的 是的
/SourcePassword: /sp 是的 是的 是的 是的 是的
/SourceServerName: /ssn 是的 是的 是的 是的 是的
/SourceTimeout: /st 是的 是的 是的 是的 是的
/SourceTrustServerCertificate: /stsc 是的 是的 是的 是的 是的
/SourceUser: /su 是的 是的 是的 是的 是的
/TargetConnectionString: /tcs 是的 是的 是的 是的
/TargetDatabaseName: /tdn 是的 是的 是的 是的 是的
/TargetEncryptConnection: /tec 是的 是的 是的 是的 是的
/TargetFile: /tf 是的 是的 是的 是的
/TargetPassword: /tp 是的 是的 是的 是的 是的
/TargetServerName: /tsn 是的 是的 是的 是的 是的
/TargetTimeout: /tt 是的 是的 是的 是的 是的
/TargetTrustServerCertificate: /ttsc 是的 是的 是的 是的 是的
/TargetUser: /tu 是的 是的 是的 是的 是的
/TenantId: /tid 是的 是的 是的 是的 是的 是的 是的
/UniversalAuthentication: /ua 是的 是的 是的 是的 是的 是的 是的
/Variables: /v 是的 是的

属性

SqlPackage作支持许多属性来修改作的默认行为。 添加到 /p:PropertyName=Value 命令行以选择性地使用属性。 可以指定多个属性,并多次指定一些属性。 例如,可以使用 /p:TableData=Product /p:TableData=ProductCategory。 有关属性的详细信息,请参阅特定的作页。

SQLCMD 变量

可以从 SQL 项目将 SQLCMD 变量生成到 .dacpac 文件中。 使用 SqlPackage 发布脚本在部署期间设置这些变量。 有关将 SQLCMD 变量添加到 SQL 项目的详细信息,请参阅 SQL 数据库项目扩展

实用工具命令

版本

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

SqlPackage /Version

帮助

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

SqlPackage /?

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

SqlPackage /Action:Publish /?

退出代码

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

  • 0 = 成功
  • nonzero = failure