VS2017 DBPROJ SQLCMD 字面值变量测试
VS2017 DBPROJ SQLCMD Variable Test for Literal Value
我想有条件地 运行 一个 post 部署脚本。我的脚本(当前)如下所示:
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)。
谢谢!!
事实证明,您需要在变量 use 周围加上单引号。要完成上述工作,代码为:
if( '$(tier)' = 'TEST' )
因此,尽管看起来您使用的是文字“$(tier)
”,但实际上它是从引号中抽出、解释并放回原处的。
我想有条件地 运行 一个 post 部署脚本。我的脚本(当前)如下所示:
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)。
谢谢!!
事实证明,您需要在变量 use 周围加上单引号。要完成上述工作,代码为:
if( '$(tier)' = 'TEST' )
因此,尽管看起来您使用的是文字“$(tier)
”,但实际上它是从引号中抽出、解释并放回原处的。