2016-06-13 7 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