如何在EXEC中输出选项卡[CHAR(9)]



我知道我可以做以下事情:

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

但是有办法在一行中做到这一点吗?即不需要声明和设置选项卡,并直接在EXEC中输出?

在一行中,但不删除声明。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)

最新更新