SQLCMD变量的动态值:Setvar

问题描述 投票:0回答:1

我正在使用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变量分配动态值?

sql-server sqlcmd database-project
1个回答
0
投票

下面的sqlpackage示例命令使用/Variables:参数指定SQLCMD值。这些值将代替发布配置文件中的值。

/Variables:
© www.soinside.com 2019 - 2024. All rights reserved.