我有一个txt文件,我的txt文件有27000000,我想读取此文件并保存在sql server表中
我使用这个sql server T-SQL
:
BULK
INSERT Employee
FROM 'E:\\file.txt' --location with filename
WITH
(
FIELDTERMINATOR = ' ',
ROWTERMINATOR = '\n'
)
我的档案是:
66200 6827 435200 1393/05/23 14:26:26 18 1
66200 6819 435200 1393/05/23 14:28:45 113 1
但我的文件结构是:
66200<space>6827<space space>435200<space>1393/05/23<space space>14:26:26<space space space>18
66200<space>6819<space space>435200<space>1393/05/23<space space>14:28:45<space space space>113 <br>
在批量块中我写了这个字段终止符:
FIELDTERMINATOR = ' ',
而我的文件evry时间有两个空格字符,每次都有第三个字符。并且批量不工作
但我想读这个文件。
我怎么能这样做?
答案 0 :(得分:0)
创建类似这样的格式文件....
10.0
6
1 SQLINT 0 4 " " 1 Col1 ""
2 SQLCHAR 0 100 " " 2 Col2 SQL_Latin1_General_CP1_CI_AS
3 SQLCHAR 0 100 " " 3 Col3 SQL_Latin1_General_CP1_CI_AS
4 SQLCHAR 0 100 " " 4 Col4 SQL_Latin1_General_CP1_CI_AS
5 SQLCHAR 0 100 " " 5 Col5 SQL_Latin1_General_CP1_CI_AS
6 SQLCHAR 0 100 "\r\n" 6 Col6 SQL_Latin1_General_CP1_CI_AS
将文件另存为.fmt
,将Col1,Col2,Col3 .....替换为表格中的实际列名。
然后你会把你的Insert语句写成......
BULK INSERT Employee
FROM 'E:\file.txt' --location with filename
WITH
(
FORMATFILE = 'E:\Format_file.fmt' --path to your format file.
);