You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用bcp导入SQL Server时如何去掉字段双引号并跳过末尾3行

bcp加载带引号数据及跳过末尾行的解决方法

处理字段包裹的双引号

根据你使用的SQL Server版本选择对应方案:

  • 若使用SQL Server 2017及以上版本,可直接使用bcp原生的-FIELDQUOTE参数指定双引号为字段引用符,bcp会自动识别并去除字段前后的双引号,无需额外预处理文件。
  • 若使用SQL Server 2016及更低版本,原生bcp不支持字段引用符配置,可通过预处理脚本批量移除文件中的双引号,或者自定义bcp格式文件配置字段的前后缀规则实现。

跳过文件末尾3行记录

bcp本身没有提供跳过末尾行的原生参数,可通过两种方式实现:

  • 方案一:预处理文件直接删除末尾3行,该方法无需提前统计文件总行数,适配性更强。
  • 方案二:如果可以提前确定文件的总行数N,可直接使用bcp的-L参数指定加载的最后一行行号为N-3即可。

完整操作示例

适配SQL Server 2017及以上版本

  1. 执行PowerShell命令预处理文件,删除末尾3行:
Get-Content Filename.text | Select-Object -SkipLast 3 | Set-Content Filename_Trimmed.text
  1. 执行修改后的bcp命令,新增-FIELDQUOTE参数:
bcp database.schema.tablename in Filename_Trimmed.text -T -c -t"|" -r"0x0a" -F 3 -m 2 -FIELDQUOTE "\""

适配SQL Server 2016及以下版本

  1. 执行PowerShell命令预处理文件,同时移除双引号并删除末尾3行:
Get-Content Filename.text | Select-Object -SkipLast 3 | ForEach-Object { $_ -replace '"', '' } | Set-Content Filename_Prepared.text
  1. 使用你原有的bcp命令直接加载预处理后的文件即可:
bcp database.schema.tablename in Filename_Prepared.text -T -c -t"|" -r"0x0a" -F 3 -m 2

注:你原有命令中的-F 3参数已经实现了跳过前2行的头部记录(UHDR行、表头行),无需调整。

内容的提问来源于stack exchange,提问作者Shagg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 19:45:07