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

时间:2012-08-20 07:57:22

标签: sql sql-server tsql

我知道我可以做到以下几点:

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

但有没有办法在一行中做到这一点?即删除声明和设置标签的需要,并直接在EXEC

中输出

2 个答案:

答案 0 :(得分:5)

在一行中但没有删除声明。 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)');

答案 1 :(得分:1)

试试这个:

   declare @str varchar(500)= 'xp_cmdshell ''echo '+ char(9)+' Some text>>
   C:\test.txt'', NO_OUTPUT'
exec(@str)