VS2017 DBPROJ SQLCMD变量测试的文学价值

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

我想有条件地运行部署后脚本。我的脚本(目前)是这样的:

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

谢谢!!

sql-server-2017 dbproj
1个回答
0
投票

因此,原来,你需要把周围的变量使用单引号。为了使上述工作中,代码如下:

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

因此,即使它看起来像您使用的文字“$(tier)”,它实际上被拉出报价,解释,并提出回去。

© www.soinside.com 2019 - 2024. All rights reserved.