数据导入和处理 - CSV

时间:2015-04-02 11:50:45

标签: sql-server database tsql

我在SQL Server 2008r2上的3NF中有许多数据源存储为CSV和数据库表结构。数据源中的某些列是不需要的。

我想要做的是将每个数据源中的数据插入到一个单独的临时表中,根据插入的数据声明数据类型(理想情况下是列名)。如果这不可能导入数据,因为char数据类型会有所帮助。

从这里开始,我想在我的标准数据库结构中选择相关数据,一旦完成删除临时表。

我想我必须使用一些演员语句来确保数据格式正确。我很乐意编写一个存储过程来执行此操作,尽管数据是定期发布的,偶尔会更改结构,因此需要一些手动工作。

我尝试使用BULK INSERT执行此操作,但我收到有关临时表的无效对象名称的Msg 208。

USE db1;
GO
BULK INSERT #TempDetails FROM 'C:\Documents\Data\Text Files\Details.txt'
WITH
    (
        DATAFILETYPE = 'char'
        , FIELDTERMINATOR = ','
        , ROWTERMINATOR = '\n'
    );

返回

Msg 208, Level 16, State 82, Line 2
Invalid object name '#TempDetails'.

实现这一目标的最佳途径是什么?

我的后退替代方法是将CSV导入Access,然后将其导入SQL进行处理,但我想在代码中使用它,因此很容易复制。

0 个答案:

没有答案