BULK INSERT到SQL Server - 使用FIELDTERMINATOR
我有这个疑问:BULK INSERT到SQL Server - 使用FIELDTERMINATOR
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?
如果您在数据文件中的字段之间的制表,然后使用此:
BULK INSERT Employee
FROM 'E:\\file.txt' --location with filename
WITH
(
FIELDTERMINATOR = '\t',
ROWTERMINATOR = '\n'
)
GO
的\t
表示标签 - 这应该告诉SQL Server来解释一个标签为两个领域之间的隔板。
感谢您关注我的问题,但我的朋友在我的文件,例如43266200和6827之间的字段有一个3空间,6827和43295200之间有一个\ t – 2014-11-01 07:33:58
,当你的查询在我的sql服务器上运行时: – 2014-11-01 07:34:37
Msg 4832,Level 16,St第1行第1行 批量加载:在数据文件中遇到意外的文件结尾。 Msg 7399,Level 16,State 1,Line 1 链接服务器“(null)”的OLE DB提供程序“BULK”报告了错误。提供者没有提供任何关于错误的信息。 Msg 7330,Level 16,State 2,Line 1 无法从链接服务器“(null)”的OLE DB提供程序“BULK”中获取一行。错误 – 2014-11-01 07:34:58
代码:
BULK INSERT #ProspectiveFile
FROM ''C:\Matt\' + @DataFileName + '.txt''
WITH (ROWTERMINATOR = ''\n''
,FIELDTERMINATOR = '' '')
'FROM“E:\\ file.txt''这是你正在运行或者是你想从你的C#源代码提取出来,SANS'“'实际的SQL ?因为它看起来像后者。在这种情况下,请注意正在运行的* actual * SQL语句。 – 2014-11-01 06:27:58
我认为在我的文件的字段之间有一个制表符空间和简单的空间,例如43266200space6827 \ t43295200 – 2014-11-01 06:30:05