首页 > 解决方案 > 使用 Visual Studio 2017 自定义 SQL Server 数据库项目脚本

问题描述

我正在使用带有 Visual Studio 2017 的 SQL Server 数据库项目,并尝试自定义脚本输出以执行以下操作:

  1. 创建没有 SQLCMD 变量的仅 T-SQL 脚本。运行脚本的人根本不允许使用 SQLCMD。是否有可能做到这一点?
  2. 排除GRANT ALTER ON SCHEMA::[dbo]GRANT CONTROL ON SCHEMA::[dbo]声明。在我的情况下,这些语句特定于较低的环境,不应部署到较高的环境。

对于#1,我环顾了 Visual Studio,但还没有找到任何方法来做到这一点。

对于#2,我尝试更改模式比较中的一些选项,但不知何故,GRANT ALTERandGRANT CONTROL语句总是出现在脚本输出中,我必须手动删除它们。

谢谢

标签: sql-servervisual-studio-2017sql-server-data-tools

解决方案


您可以创建发布配置文件作为数据库项目的一部分,并排除您不想部署的部分。例如,用户、权限和角色成员资格可以从部署中排除。

话又说回来,奇怪的是这些陈述出现了。您的数据库项目中是否有用户和/或登录名?例如,我一开始就从来没有把它们放在那里,因为它们是特定于实例的,并且当你有多个环境时弊大于利(几乎总是如此)。

关于 SQLCMD 变量,我认为您不能完全避免它们。收到您的脚本的人必须将它们注释掉并用代码中的实际值替换它们。贵公司在总体上设置变更管理,特别是变更部署的方式一定有一些非常不寻常的地方。也许您可以让他们重新考虑他们的旧方式,转而采用更现代的方法?...


推荐阅读