将结果保存到txt文件,而不在sqlcmd中进行任何其他格式化

时间:2013-03-14 12:10:09

标签: tsql sqlcmd osql

当我运行此命令时:
sqlcmd -S server -U sa -P xxxxxxx -i d:clients.sql -o D:\clients.txt
但是在文件中我有x行受影响,“1> 2> 3> 4> 5> 6> 7> 8>”和许多其他空间
我不仅没有任何格式化结果 在sql文件中我有一些选择。

提前感谢。

1 个答案:

答案 0 :(得分:1)

您可以将SET NOCOUNT ON添加到脚本remove the rows affected message并将-h-1添加到命令行以删除列名称及其下方的行。这适用于我并仅返回行数据:

sqlcmd -E -i query.sql -o tmp.txt -h-1

query.sql看起来像这样:

set nocount on;
select name from sys.objects;

但我不知道1> 2> 3> 4> 5> 6> 7> 8>字符的来源。您可能希望发布一个提供该输出的SQL脚本的最小示例。

作为一般性评论,我个人不喜欢使用sqlcmd.exe来运行查询,因为很难控制输出。其他一些需要考虑的事项是:

  • 如果需要分隔文件,请使用bcp.exe
  • 使用PowerShell,Perl或您喜欢的任何语言的脚本
  • 使用SSIS包
  • 将脚本内容放入存储过程并执行它而不是使用输入文件