SQL Server 结果文件在末尾创建额外的行

SQL Server 结果文件在末尾创建额外的行

当我将查询的输出路由到文件时,底部有一两行空白行。当我通过 SSMS(2008 或 2012)运行查询时,我得到了两个额外的空白行。当我通过 SQLCMD 运行查询时,我得到了 1 个额外的空白行。我该如何摆脱它们?

示例(使用 SSMS):

Set NoCount on
Select '1' as 'One'

文件中此查询的输出是:

One
1
(blank line)
(blank line)

或十六进制4F 6E 65 0D 0A 31 0D 0A 0D 0A

底部的额外行导致使用输出作为输入的步骤出现问题。

我可以在查询开始时设置一个参数吗?

它是一个数据库选项吗?

答案1

在写入文件之前,添加一个条件拆分步骤。双击组件,在输出名称中,将其命名为“无空行”,并在条件中写入LEN(TRIM(One)) > 0。此处一个是列名,此条件将删除那些具有空值的行。现在将条件输出的输出链接到数据文件目标。记得选择无空行。由此您可以删除多余的行。

答案2

您可以在命令中使用Format-List。例如

> sqlcmd -Q "Set NoCount on; Select '1' as 'One'"| Format-List | Out-String | ForEach-Object { $_.Trim() }

相关内容