如何在SQLCMD中使用TAB作为列分隔符

daw*_*der 10 sql-server sqlcmd

SQLCMD支持-s参数来指定列分隔符,但我无法确定如何表示选项卡(CHAR(9))字符.我尝试了以下但两个都不起作用:

sqlcmd -S ServerName -E -Q"select * from mytable" -s"\t" -o results.txt
sqlcmd -S ServerName -E -Q"select * from mytable" -s'\t' -o results.txt
Run Code Online (Sandbox Code Playgroud)

有什么想法在SQLCMD中如何做到这一点?

Doo*_*gie 19

在批处理文件中,在双引号之间放置一个选项卡.

sqlcmd -S ServerName -E -Q"select * from mytable" -s"   " -o results.txt
Run Code Online (Sandbox Code Playgroud)

要在PowerShell文件中执行相同操作,请使用包含转义选项卡的转义双引号

sqlcmd -S ServerName -E -Q"select * from mytable" -s `"`t`" -o results.txt
Run Code Online (Sandbox Code Playgroud)


Ed *_*per 10

从SQLCMD获取未格式化的结果很困难.

如果要创建制表符分隔的输出文件,BCP可能是更好的选择:

bcp "select * from mytable" queryout results.txt -S server -T -c
Run Code Online (Sandbox Code Playgroud)


JWa*_*lly 6

在这里找到了一个很好的答案:SQLCMD outfile as tab delimited text file

  1. 打开记事本
  2. 粘贴这个: sqlcmd -S (local) -E -s"<TAB>" -Q "select * from sys.dm_exec_query_stats" -o MyOutput.txt -h-1 -W
  3. 突出显示<TAB>,然后按下Tab
  4. 将文件另存为 MyBatch.bat
  5. 运行 MyBatch.bat