我正在使用Visual Studio 2017数据库项目(Dacpac),并且在发布文件(在xml文件中)中有一些SQLCMD变量,如下所示-
<SqlCmdVariable Include="ClientDBName">
<Value>Client_1</Value>
</SqlCmdVariable>
而且我的问题是,我们有多个客户端,并且我们要通过dacpac一次为多个客户端部署数据库更改。因此,如果像上面的示例那样为SQLCMD变量“ ClientDBName”分配静态值,则它将为所有客户端采用相同的值(相同的数据库名称“ Client_1”)。
并且为了解决我正在使用PreDeployment脚本的问题。在其中尝试为SQLCMD变量“ CleintDBName”分配动态值或数据库名称。如下所示-
DECLARE @dbname varchar(50)
SET @dbName = "xyz"
:setvar ClientDBName @dbName
但是这不起作用。我对其进行了探索,发现这行不通。我尝试做的另一种方法是通过调用如下脚本来分配dbname值-
:setvar ClientDBName "C:\GetDatabaseName.sql"
但是这也不起作用。
所以有人可以帮我这个忙,我们如何为SQLCMD变量分配动态值?
下面的sqlpackage示例命令使用/Variables:
参数指定SQLCMD值。这些值将代替发布配置文件中的值。
/Variables: