具有多个fieldterminator的SQL批量插入

时间:2018-07-11 18:26:38

标签: sql sql-server bulkinsert

请获得您的帮助:我有一个包含以下内容的文本文件(记事本):

enter image description here

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

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

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

那么解决方案是什么?我怎样才能放置多个FIELDTERMINATOR,或者我可以使其自动看到那些终止符?

在同一示例上,我还有另一个问题:如何使ID字段具有自动递增的功能,因为在SQL中,当我将id列放在此处时,它会给我错误的信息,因为他开始从第一列导入数据。我可以做些什么,以便批量插入从数据库的第二个字段开始,而离开第一个字段,因为它用于id吗?

非常感谢

1 个答案:

答案 0 :(得分:0)

“如果要使用具有更少或更多字段的数据文件,我们可以通过将额外的字段长度设置为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