2014-09-18 41 views
0

我使用DACPAC作爲數據庫部署的一部分。相同的軟件包被部署到dev/staging/prod環境。我們希望能夠做的是爲數據庫建立一個數據庫,例如管理員用戶,這些用戶在每個環境中具有不同的用戶標識符。環境感知的SQL腳本

如果我可以在DACPAC(或其他)的發佈配置文件中放置一個變量,那就太好了,但我想我也可以通過查看@@servername來實現此目的。有沒有更好的方法來完成這個?

回答

2

因此,如果您在Visual Studio中使用SSDT,這是超級乾淨的。

轉到項目屬性,SQLCmd選項卡並輸入任何變量。

enter image description here

然後在腳本中使用它們。

enter image description here

在Visual Studio中發佈你(如果你指定的任何)得到一個很好的用戶界面,使您可以指定變量的值或加載默認值。

enter image description here

發佈配置是MSBuild項目的格式只是一個XML文件,所以沒有什麼瘋狂的事情出現。如果您正在自動部署,則可以使用您正在使用的任何dacpac部署工具來指定變量的默認值。我使用SqlPackage,它是SSDT的一部分。從Powershell的Command Line Reference

用法:

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