VS2017 DBPROJ SQLCMD文字值变量测试

时间:2019-01-28 22:30:36

标签: sql-server-2017 dbproj

我想有条件地运行部署后脚本。我的脚本(当前)如下所示:

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)。

谢谢!

1 个答案:

答案 0 :(得分:0)

事实证明,您需要在变量使用前后加上单引号。为了使上述工作有效,代码应为:

if( '$(tier)' = 'TEST' )

因此,即使看起来您使用的是文字“ $(tier)”,它实际上也已从引号中引出,解释并放回原处。