【发布时间】:2019-08-14 06:07:08
【问题描述】:
下面将使用 sqlpackage.exe 部署 Sql 数据库。 这不需要使用发布配置文件 Xml。有没有一种方法可以内联添加简单的部署后脚本,而无需外部部署后文件?
例如:将发布数据库内联,没有发布配置文件 xml。
SqlPackage.exe
/Action:Publish
/SourceFile:TestDatabase.dacpac
/TargetDatabaseName:TestDb
/TargetServerName:localhost
现在,目标是在命令行中添加部署后脚本,例如在示例表中插入值。
预期目标:
SqlPackage.exe
/Action:Publish
/SourceFile:TestDatabase.dacpac
/TargetDatabaseName:TestDb
/TargetServerName:localhost
/PostDeploymentScript:"insert into dbo.SampleTable (SampleColumn) values ('1')"
在 Microsoft 网站中找不到部署后脚本内联选项。也许它不存在。
https://docs.microsoft.com/en-us/sql/tools/sqlpackage?view=sql-server-2017
SQLPackage Post Deployment Script not running
更新(Steve Ford 下面的回答可能不起作用):
希望在没有任何外部文件的情况下从命令提示符执行此操作。史蒂夫的回答可能不适用于我的情况/问题。
【问题讨论】:
-
查看我对我的回答的评论
-
为什么不能创建普通的后置脚本并将其存储为文件?如果这不是一个选项,那么为什么不在 sqlpackage 完成后直接使用 sqlcmd 运行这个插入语句?
-
嗨@DmitrijKultasev 只是好奇该选项是否存在,
-
我认为您可以与部署贡献者一起做一些事情,但我从未听说过这样的原生功能
-
您能否解释一下为什么使用 SQLPackage 可能不起作用。正如我在回答中所说,您唯一需要的文件是 dacpac 文件。除了 DACPAC 之外没有其他文件,部署后脚本是 DACPAC 的一部分。
标签: .net sql-server sql-server-2017 sqlpackage