我想有条件地运行部署后脚本。我的脚本(目前)是这样的:
declare @tier nvarchar(100) = $(tier)
if( @tier = 'TEST' )
begin
:r .\ConfigSeedData.TEST.sql
end
我已经在项目文件中定义的变量,如Using variable in sql postdeployment build script?详述。该变量是(目前)定义为TEST
(没有引号,但我已经对引号试了一下,太)。
但是,不管我如何努力扭转我的语法,我不断收到此错误:.Net SqlClient Data Provider: Msg 207, Level 16, State 1, Line 875 Invalid column name 'TEST'.
如何检查一个SQLCMD变量文字值,不是列?
我曾尝试将围绕$的方括号(),试图直接访问值(不分配为nvarchar)。
谢谢!!
因此,原来,你需要把周围的变量使用单引号。为了使上述工作中,代码如下:
if( '$(tier)' = 'TEST' )
因此,即使它看起来像您使用的文字“$(tier)
”,它实际上被拉出报价,解释,并提出回去。