基本上,我想将数百个CSV文件导入SQL Server 2008。
文件格式如下:
<Ticker>,<DTYYYYMMDD>,<Open>,<High>,<Low>,<Close>,<Volume>
AAM,20120110,21.6,22.8,21.4,21.6,3510
AAM,20120109,22.2,22.9,22.0,22.2,1130
AAM,20120105,0.0,23.0,22.2,22.2,210
我试过了:
BULK
INSERT BBB
FROM 'D:\FIFA\excel_aam.csv'
WITH
(
FIRSTROW = 2,
FIELDTERMINATOR = ',',
ROWTERMINATOR = '/n'
)
GO
但它不起作用。所以我想将CSV文件导入为varchar
格式,然后将每列更改为正确的数据类型,如下所示:
CREATE TABLE BBB (
TICKER VARCHAR(15)NULL,
INDEXDATE VARCHAR(15) PRIMARY KEY,
OPENPRICE VARCHAR(15) NULL,
HIGHPRICE VARCHAR(15) NULL,
LOWPRICE VARCHAR(15) NULL,
CLOSEPRICE VARCHAR(15) NOT NULL,
VOLUME VARCHAR(15))
GO
但它给了我错误:
Msg 4863,Level 16,State 1,Line 1
第1行第7列(VOLUME)的批量加载数据转换错误(截断)。
那么,我怎样才能将这些文件(这么多我无法使用导入和导出向导的文件)导入SQL Server呢?
答案 0 :(得分:0)
为了导入这么多文件听起来像你需要SSIS
答案 1 :(得分:0)
我只是将更改的行终止符改为\n
(不 /n
)
--CREATE TABLE BBB (
--TICKER VARCHAR(15)NULL,
--INDEXDATE DATETIME,
--OPENPRICE DECIMAL(12,4),
--HIGHPRICE DECIMAL(12,4),
--LOWPRICE DECIMAL(12,4),
--CLOSEPRICE DECIMAL(12,4),
--VOLUME DECIMAL(20,4))
--GO
BULK INSERT BBB
FROM 'D:\FIFA\excel_aam.csv'
WITH
(
FIRSTROW = 2,
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
)
GO
(3 row(s) affected)
我现在在BBB
表中有行....