【问题标题】:SQL bulk insert with multiple fieldterminator具有多个字段终止符的 SQL 批量插入
【发布时间】:2018-07-11 18:26:38
【问题描述】:

我需要你的帮助:我有一个包含以下内容的文本文件(记事本):

enter image description here

我想将此txt文件中的数据导出到sql表,并确保我使用此代码使用批量插入:

Bulk insert table1
from 'C:\Users\user\Desktop\file.txt'
with
(
    FIELDTERMINATOR = '\t',
    ROWTERMINATOR = '\n'
)

这里的问题是当我运行这段代码时我得到了 0 行效果,这是因为 txt 文件中单词之间的字段终止符,有时是一个制表符,有时是两个制表符,一次是空格,有时使用此 (;)

那么解决方法是什么?我怎样才能放置多个 FIELDTERMINATOR,或者如果我可以让它自动看到那些终结器?

请我对同一个示例还有另一个问题:如何使 ID 字段自动递增,因为在 SQL 中,当我将 id 列放在这里时,它给了我错误的信息,因为他开始从第一列导入数据。我可以做任何事情,以便批量插入从数据库上的第二个字段开始并留下第一个,因为它的 id 吗?

非常感谢你

【问题讨论】:

  • 好的谢谢我加了
  • 如果我是你,我会打开该文本文件并使用 Excel 或 Notepad++ 替换(使用正则表达式或其他方式)每个不同的分隔符与一个共同的分隔符。尝试使用 SQL 句柄会很棘手。
  • 谢谢你,但那行不通,因为这里不允许使用 excel 或任何其他程序

标签: sql sql-server bulkinsert


【解决方案1】:

“如果您想使用具有更少或更多字段的数据文件,我们可以通过将额外字段长度设置为 0 以减少字段或在批量复制过程中省略或跳过更多字段来实现。”

更多信息在这里:

https://social.msdn.microsoft.com/Forums/sqlserver/en-US/0376e883-33d7-4adf-935e-5ec64873e59e/forum-faq-how-to-use-multiple-field-terminators-in-bulk-insert-or-bcp-command-line?forum=sqltools

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-01-09
    • 2023-03-08
    • 1970-01-01
    • 2015-02-04
    • 1970-01-01
    • 2017-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多