当我将查询的输出路由到文件时,底部有一两行空白行。当我通过 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() }