Sql server 使用SSI删除最后一行中的额外空间

Sql server 使用SSI删除最后一行中的额外空间,sql-server,csv,ssis,etl,Sql Server,Csv,Ssis,Etl,我有一个csv文件,其中包含很少的行、列。我在源代码处遇到问题,因为最后一行有额外的空间。如何删除此空间 您可以看到下图末尾有一个额外的空间 既然您对powershell开放,我就使用了这种方法。重要的是,每个文件中最后考虑的是您的LF/CR。如果它可能不见了,那你就得在那里检查一下 单个文件 $stream = [IO.File]::OpenWrite("somefile.csv") $stream.SetLength($stream.Length - 2) $stream.Close() $

我有一个csv文件,其中包含很少的行、列。我在源代码处遇到问题,因为最后一行有额外的空间。如何删除此空间

您可以看到下图末尾有一个额外的空间


既然您对powershell开放,我就使用了这种方法。重要的是,每个文件中最后考虑的是您的
LF/CR
。如果它可能不见了,那你就得在那里检查一下

单个文件

$stream = [IO.File]::OpenWrite("somefile.csv")
$stream.SetLength($stream.Length - 2)
$stream.Close()
$stream.Dispose()
目录中有多个文件

#Remove the last bit of data from the end of the file, which is a LF, so BULK INSERT doesn't break
$fileDirectory = "E:\dir\subdirectory"

foreach($file in Get-ChildItem $fileDirectory)
{
    $filePath = $fileDirectory + "\" + $file

    $stream = [IO.File]::OpenWrite($filePath)
    $stream.SetLength($stream.Length - 2)
    $stream.Close()
    $stream.Dispose()
}
我在一个相当大的每日数据集上使用它,它的速度非常快,只有一两秒钟。最初的想法归功于via

来自OP


此文件的来源是什么?如果这是一个一次性的要求,我可以手动编辑最后一个并删除空白。你对非ssis的想法开放吗?比如,超级地狱?我假设您的
批量插入
已损坏?也是一个文件还是多个文件?@TimBiegeleisen-不幸的是,这是一个每周生成的文件,并且源代码不受我们团队的控制,这已成为一个问题。@scsimon我可以使用powershell(我想我可以使用execute process task运行此任务)。是的,DFT在源代码处失败。awesome@sqlvan很高兴提供帮助!