You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在Windows本地通过PowerShell或命令行恢复Bacpac文件至SSMS

本地通过脚本/命令行恢复Bacpac到SQL Server(SSMS可连接)

前提条件

  • 本地已安装SQL Server Data Tools (SSDT)(自带sqlpackage.exe),或单独安装了sqlpackage工具
  • 目标SQL Server实例处于运行状态,且你拥有足够权限(如dbcreator、sysadmin角色)
  • Bacpac文件路径正确,当前用户有读取权限

方法一:使用sqlpackage.exe命令行

sqlpackage.exe是微软官方的DAC工具,专门用于Bacpac的导入导出操作,默认路径因SQL Server版本而异,比如:

  • SQL Server 2019:C:\Program Files\Microsoft SQL Server\150\DAC\bin\sqlpackage.exe
  • SQL Server 2022:C:\Program Files\Microsoft SQL Server\160\DAC\bin\sqlpackage.exe

基础导入命令

sqlpackage.exe /Action:Import `
    /SourceFile:"C:\data\your_db.bacpac" `
    /TargetServerName:localhost\SQLEXPRESS `
    /TargetDatabaseName:Restored_DemoDB `
    /TargetUser:sa `
    /TargetPassword:YourPass123!

参数说明

  • /Action:Import:指定执行Bacpac导入(恢复)操作
  • /SourceFile:Bacpac文件的完整路径
  • /TargetServerName:目标SQL Server实例名,示例为本地SQLEXPRESS实例,直接填localhost可连接默认实例
  • /TargetDatabaseName:恢复后生成的数据库名称
  • /TargetUser//TargetPassword:SQL身份验证的账号密码;如果用Windows身份验证,直接删除这两个参数即可自动使用当前系统账号

覆盖现有数据库的命令

如果目标数据库已存在,添加/TargetDatabaseExistsAction参数强制覆盖:

sqlpackage.exe /Action:Import `
    /SourceFile:"C:\data\your_db.bacpac" `
    /TargetServerName:localhost\SQLEXPRESS `
    /TargetDatabaseName:Restored_DemoDB `
    /TargetDatabaseExistsAction:Overwrite `
    /TargetUser:sa `
    /TargetPassword:YourPass123!

方法二:使用PowerShell脚本

适用于自动化批量恢复场景,需要先安装SqlServer模块。

步骤1:安装SqlServer模块

Install-Module -Name SqlServer -Scope CurrentUser -Force

步骤2:执行导入脚本

# 导入模块
Import-Module SqlServer

# 配置参数
$bacpacFilePath = "C:\data\your_db.bacpac"
$targetInstance = "localhost\SQLEXPRESS"
$newDBName = "Restored_DemoDB"
$sqlAuthUser = "sa"
$sqlAuthPass = "YourPass123!"

# 创建SQL认证凭据(Windows身份验证可跳过此步)
$sqlCredential = New-Object System.Management.Automation.PSCredential(
    $sqlAuthUser,
    (ConvertTo-SecureString $sqlAuthPass -AsPlainText -Force)
)

# 执行导入
Import-Dacpac -Path $bacpacFilePath `
    -ServerInstance $targetInstance `
    -DatabaseName $newDBName `
    -Credential $sqlCredential `
    -DatabaseExistsAction Overwrite  # 覆盖现有数据库,不需要可删除此参数

验证恢复结果

导入完成后,打开SSMS连接到目标SQL Server实例,即可看到恢复好的数据库,可正常进行查询、修改等操作。

内容的提问来源于stack exchange,提问作者Moinuddin Tamboli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 12:45:37