环境感知的sql脚本

时间:2014-09-18 21:30:00

标签: sql-server-2012 dacpac

我正在使用DACPAC作为数据库部署的一部分。将相同的包部署到dev / staging / prod环境。我们希望能够做的是使用管理员用户等数据来建立数据库,例如,每个环境都有不同的用户ID。

如果我可以在DACPAC(或其他)的发布配置文件中放置一个变量,那将会很棒,但我想我也可以通过查看@@servername来实现这一点。有没有更好的方法来实现这个目标?

1 个答案:

答案 0 :(得分:2)

如果您在Visual Studio中使用SSDT,那么这是非常干净的。

转到项目属性,SQLCmd选项卡并输入任何变量。

enter image description here

然后在脚本中使用它们。

enter image description here

在visual studio中发布时,您将获得一个很好的UI,允许您指定变量的值或加载默认值(如果您指定了任何值)。

enter image description here

发布配置文件只是一个MSBuild项目格式的xml文件,因此没有什么可疯狂的。如果您正在自动部署,则可以使用您正在使用的任何dacpac部署工具为变量指定默认值。我使用SqlPackage,这是SSDT的一部分。 Command Line Reference

Powershell的用法:

& $sqlpackageexe /Action:Publish /SourceFile:$dacpac /Profile:$dacprofile /TargetConnectionString:$connstring /Variables:DbEnvironment=Development

相关问题