私は次のことができることを知っています:
DECLARE @Tab CHAR(1)
SET @Tab = CHAR(9)
EXEC('xp_cmdshell ''echo ' + @Tab + 'Some text>> C:\test.txt'', NO_OUTPUT')
しかし、これを1行で行う方法はありますか? つまり、タブを宣言して設定する必要がなくなり、EXEC
?
私は次のことができることを知っています:
DECLARE @Tab CHAR(1)
SET @Tab = CHAR(9)
EXEC('xp_cmdshell ''echo ' + @Tab + 'Some text>> C:\test.txt'', NO_OUTPUT')
しかし、これを1行で行う方法はありますか? つまり、タブを宣言して設定する必要がなくなり、EXEC
?
宣言を削除せずに 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)');
これを試して:
declare @str varchar(500)= 'xp_cmdshell ''echo '+ char(9)+' Some text>>
C:\test.txt'', NO_OUTPUT'
exec(@str)