0

当我运行此命令时:
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 文件中我有一些选择。

预先感谢。

4

1 回答 1

1

您可以添加SET NOCOUNT ON到脚本以删除rows affected消息,并添加-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 包
  • 将脚本内容放入存储过程并执行它而不是使用输入文件
于 2013-03-15T16:40:52.937 回答