我有以下内容,正如我所期望的那样正常工作:
IF '$(EnvName)' LIKE 'Path%'
BEGIN
:r .\Path\Path1.sql
END
我想做的是:
IF '$(EnvName)' LIKE 'Path%'
BEGIN
:r .\Path\'$(EnvName)'.sql
END
但是这失败了,因为结果是.\Path\".sql
- 尽管IF ('$EnvName')
工作得很好。
我做错了什么?
答案 0 :(得分:0)
SQLCMD变量就像一个预处理器。您只需要担心在表达式需要引用值时引用它们,而:r
只需要引用整个路径。
尝试:
IF '$(EnvName)' LIKE 'Path%'
BEGIN
:r .\Path\$(EnvName).sql
END
或者:
IF '$(EnvName)' LIKE 'Path%'
BEGIN
:r ".\Path\$(EnvName).sql"
END
答案 1 :(得分:0)
试试这个:
:SETVAR FilePath ".\Path\"
:SETVAR FileExt ".sql"
IF '$(EnvName)' LIKE 'Path%'
BEGIN
:r $(FilePath)$(EnvName)$(FileExt)
END