2

「abc.sql」というSQLスクリプトがあり、sqlcmdを使用してバッチファイルから呼び出しています

  1. のようなバッチスクリプトを呼び出す

    script.bat arg1 arg2
    
  2. バッチで

    param1=%1
    param2=%2
    

次に、次のようなSQLスクリプトを呼び出します

sqlcmd -S server -i abc.sql -v var1=%param1% var2=%param2%
  1. SQL スクリプト内

    DECLARE @node as sysname;
    DECLARE @serv as sysname;
    
    SET @node = $(var1);
    SET @serv = $(var2);
    

しかし、バッチスクリプトを呼び出すと、「無効な列名 'XXXXXXXX'」というエラーが発生します

ここで、「XXXXXXX」は var1 の値です。私が間違っていること。何か案が。

繰り返しますが、スカラー変数 @node および @serv が宣言および設定されているにもかかわらず、... というエラーが表示されますMust declare the scalar variable "@node"

4

1 に答える 1

4

スクリプトに引用符を含める必要があります。

    SET @node = '$(var1)';
    SET @serv = '$(var2)';
于 2011-11-23T13:32:17.133 に答える