5

私は次のことができることを知っています:

DECLARE @Tab CHAR(1)
SET @Tab = CHAR(9)
EXEC('xp_cmdshell ''echo ' + @Tab + 'Some text>> C:\test.txt'', NO_OUTPUT')

しかし、これを1行で行う方法はありますか? つまり、タブを宣言して設定する必要がなくなり、EXEC?

4

2 に答える 2

5

宣言を削除せずに 1 行で。EXEC および sp_executesql では、コマンドまたはパラメーターで関数呼び出しを使用できません。したがって、コマンドに CHAR(9) を挿入するには、文字列変数を宣言する必要があります。

exec('DECLARE @str varCHAR(200);
      set @str = ''xp_cmdshell ''''echo '' + CHAR(9) + ''Some text>> C:\test.txt'''', NO_OUTPUT'';
      EXEC(@str)');
于 2012-08-20T12:33:19.057 に答える
1

これを試して:

   declare @str varchar(500)= 'xp_cmdshell ''echo '+ char(9)+' Some text>>
   C:\test.txt'', NO_OUTPUT'
exec(@str)
于 2012-08-20T08:09:48.360 に答える