首页 文章

将CSV文件导入SQL Server 2008

提问于
浏览
1

基本上,我想将数百个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

但它给了我错误:

消息4863,级别16,状态1,行1第1行第7列(卷)的批量装入数据转换错误(截断) .

那么,我怎么能正确地将这些文件(这么多我无法使用导入和导出向导的文件)导入SQL Server?

2 回答

  • 0

    对于导入这么多文件听起来像你需要SSIS

  • 0

    在我的情况下它只是 change 的行终止符号 \nnot /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 表中有行....

相关问题