我发现如果我将 SQL Server 代理作业编写为脚本开头的“创建到” use msdb
- 所以我假设作业存储在 msdb 数据库中?
将 SQL Server 作业添加到 Visual Studio 数据库项目的最佳方法是什么?我将 msdb 数据库添加到数据库解决方案中,但这似乎对作业没有任何参考。
我希望将作业与数据库一起部署/更新......这似乎是不可能的?
我发现如果我将 SQL Server 代理作业编写为脚本开头的“创建到” use msdb
- 所以我假设作业存储在 msdb 数据库中?
将 SQL Server 作业添加到 Visual Studio 数据库项目的最佳方法是什么?我将 msdb 数据库添加到数据库解决方案中,但这似乎对作业没有任何参考。
我希望将作业与数据库一起部署/更新......这似乎是不可能的?
我真的很高兴你问了这个问题。我对 Visual Studio 数据库项目中的 SQL Server 作业和作业部署以及数据库有同样的需求。
所以我开始着手解决这个问题。这是我创建的内容以及我如何获取此设置。它非常适合预期目的。
概述:
参考:如何检查 SQL Server 实例中是否存在凭据?
例子:
创建一个执行脚本文件的脚本文件。更多详情如下。
发布数据库项目,BOOM你刚刚做了一些很棒的事情。
SSDT 设置:
如果您尝试使用 [Build Action="Post Deploy"] 创建多个脚本文件,您将收到此错误消息。
ssdt-dbproj_DB-ScriptsPostDeployment.png
SSDT 发布:
我运行了发布文件并选择了“生成脚本”选项。我查看了脚本并且... POST DEPLOYMENT 代码被自动插入以添加 SQL 代理作业!成功!下面是在 SSMS 中对 SQL 实例运行查询后的脚本和脚本执行消息...
我认为最好的选择是将创建作业语句包含在部署后脚本中。就像这个线程中的解决方案:
如何在 VS SQL 项目中部署 SQL Server 代理作业?
4 年前有人问过这个问题,但仍会添加答案以防万一。
博客文章很好地解释了如何有效地做到这一点。
https://www.alexvolok.com/2020/azure-devops-for-sql-server-dba-continuous-delivery-of-sql-agent-jobs/