带有SQLPACKAGE的BACPAC数据库,检查并指定位置



我可以运行 SqlPackage导入 bacpac,在运行前可以检查数据库,还可以指定将.mdf, .ldf文件放在哪里?因此,当数据库存在时,它不会做任何事情。但是,如果不存在,它将为我导入数据库吗?

sqlpackage.exe不接受参数来指定导入操作的MDF和LDF文件的位置。

有几个选择可以解决此问题:

  • 您自己创建一个带有所需MDF和LDF文件的空数据库(例如使用SQLCMD(,然后运行sqlpackage.exe将BACPAC文件导入到空数据库中。
  • 使用"部署贡献者"来修改运行时部署的行为。这有点复杂,因为它涉及将某些C#代码编译到.NET DLL中,然后在执行导入操作时必须使用该代码。但是,好的是您可以重写SQLPackage.exe执行的T-SQL。这是修改数据和日志文件路径的示例部署贡献者:https://github.com/microsoft/dacextensions/blob/master/master/samples/contributors/dblocationmodifier.cs

至于存在的不同行为vs不存在 - 请注意,导入命令将拒绝修改非空数据库,因此可以安全地执行导入操作而不考虑数据库是否已经存在。p>

相关内容

  • 没有找到相关文章

最新更新