2016-06-13 61 views
1

我有以下的,這是工作,正如我所期望的:結合SQL參數與外部路徑?

IF '$(EnvName)' LIKE 'Path%' 
BEGIN 
    :r .\Path\Path1.sql 
END 

我試圖做的是:

IF '$(EnvName)' LIKE 'Path%' 
BEGIN 
    :r .\Path\'$(EnvName)'.sql 
END 

但這種失敗,因爲結果是.\Path\".sql - 儘管IF ('$EnvName')工作得很好。

我在做什麼錯?

+1

嘗試':r \路徑\ $(ENVNAME).sql'。 –

回答

0

SQLCMD變量就像一個預處理器。您只需要擔心在表達期望引用的值時引用它們,並且:r只需要引用整個路徑。

嘗試:

IF '$(EnvName)' LIKE 'Path%' 
BEGIN 
    :r .\Path\$(EnvName).sql 
END 

或者:

IF '$(EnvName)' LIKE 'Path%' 
BEGIN 
    :r ".\Path\$(EnvName).sql" 
END 
0

試試這個:

:SETVAR FilePath ".\Path\" 
:SETVAR FileExt ".sql" 
IF '$(EnvName)' LIKE 'Path%' 
BEGIN 
    :r $(FilePath)$(EnvName)$(FileExt) 
END