我想有条件地运行部署后脚本。我的脚本(当前)如下所示:
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)。
谢谢!
答案 0 :(得分:0)
事实证明,您需要在变量使用前后加上单引号。为了使上述工作有效,代码应为:
if( '$(tier)' = 'TEST' )
因此,即使看起来您使用的是文字“ $(tier)
”,它实际上也已从引号中引出,解释并放回原处。