BULK INSERT到SQL Server - 使用FIELDTERMINATOR

时间:2014-11-01 06:19:07

标签: sql-server sql-server-2008

我有这个问题:

BULK INSERT Employee
FROM 'E:\\file.txt' --location with filename
WITH
(
   FIELDTERMINATOR = ' ',
   ROWTERMINATOR = '\n'
)
GO

在我的文件中,数据如下所示:

43266200 6827           43295200 1393/05/23 14:26:26     18      1

我想将此数据插入到我的表中,但是我的fieldterminator中的文件有错误,SQL Server抱怨字段之间的空格或制表符错误。我怎么解决这个问题呢? 我能用这个吗?

BULK INSERT Employee
    FROM 'E:\\file.txt' --location with filename
    WITH
    (
       FIELDTERMINATOR = ' ' or '  ' or '        ',
       ROWTERMINATOR = '\n'
    )
    GO


或者如何将此txt文件导入sql server?

2 个答案:

答案 0 :(得分:1)

如果数据文件中的字段之间有选项卡,请使用此选项:

BULK INSERT Employee
FROM 'E:\\file.txt' --location with filename
WITH
(
   FIELDTERMINATOR = '\t',
   ROWTERMINATOR = '\n'
)
GO

\t表示一个标签 - 应该告诉SQL Server将标签解释为两个字段之间的分隔符。

答案 1 :(得分:0)

代码:

BULK INSERT #ProspectiveFile
                  FROM ''C:\Matt\' + @DataFileName + '.txt''
                  WITH (ROWTERMINATOR = ''\n''
                       ,FIELDTERMINATOR = ''    '')