33

我想这将是一个相当主流的场景,但我找不到如何在Visual Studio 2013中将导出的 Azure SQL 数据库 (.bacpac) 导入到我的LocalDB中。我是否遗漏了什么或 Visual Studio 遗漏了什么?

(注意:如果有 SQL Server 管理工作室但我没有它并且不想安装它,如果可能的话,这里有解决方案。)

4

4 回答 4

42

如果你的机器上有这个文件夹,C:\Program Files (x86)\Microsoft SQL Server\110\DAC\bin那么你可以运行这个命令来恢复 bacpac 文件:

.\SqlPackage.exe /Action:Import /SourceFile:"c:\temp\your.bacpac" /TargetConnectionString:"Data Source=(localdb)\v11.0;Initial Catalog=devdb; Integrated Security=true;"

如果该文件夹丢失,您将需要从 Microsoft 下载工具

于 2015-01-09T04:34:01.780 回答
14

对我来说,正确使用的命令是:

.\SqlPackage.exe /Action:Import /SourceFile:"c:\temp\your.bacpac" /TargetConnectionString:"Data Source=(localdb)\mssqllocaldb;Initial Catalog=DBNAME;Integrated Security=true;"

否则我会得到一个错误: *** Error importing database:Could not import package. Unable to connect to master or target server 'DBNAME'. You must have a user with the same password in master or target server 'DBNAME'.

使用VS2015,在anjdreas指定的位置:

C:\Program Files (x86)\Microsoft Visual Studio 14.0\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\130

于 2017-04-10T13:30:38.870 回答
4

如果您想多次使用它,您可以添加sqlpackage到环境变量中,允许您sqlpackage从任何文件夹作为命令运行。

请参阅此处了解如何添加环境变量的路径,这并不难。

然后你就可以跑了:sqlpackage从任何地方!添加后要进行测试,只需从任何文件夹中打开命令提示符或 powershell 并键入sqlpackage,您应该会得到类似的内容(请记住先关闭所有以前打开的提示,以便他们可以得到更改):

从任何地方运行 <code>sqlpackage</code>

完整的脚本然后:

sqlpackage /Action:Import /SourceFile:"C:...\SOMEDBBACKUP.bacpac" /TargetConnectionString:"数据源=(localdb)\mssqllocaldb;初始目录=bac_give_dbimport_any_name_you_want;集成安全=true;"

笔记:

  1. 我的安装列出了一个全小写名称的 exe sqlpackage.exe,这就是我使用全小写的原因sqlpackage
  2. 我目前使用 VStudio 2019 的路径如下,但您可以使用最终路径来找到您的/最新版本(我可以从“.../DAC/130”或 140 或 150 中选择):

C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\Common7\IDE\Extensions\Microsoft\SQLDB\DAC\150\sqlpackage.exe

  1. 对于导入的数据库名称,它不必与原始数据库名称匹配,因此“bac_give_dbimport_any_name_you_want”可以是您想要的任何名称。
于 2019-05-21T16:51:08.253 回答
1

传递/TargetConnectionString参数时,我收到错误

操作导入需要 TargetDatabaseName 参数的值

SqlPackage.exe似乎有点挑剔。

我必须提供请求的参数 -TargetDatabaseNameTargetServerName(短名称tdntsn),它起作用了。

最终命令如下所示:

.\SqlPackage.exe /Action:Import /SourceFile:"c:\temp\your.bacpac" /tdn:"C:\temp\database.mdf" /tsn:"(LocalDB)\MSSQLLocalDB"
于 2021-02-09T15:23:54.883 回答