我在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进行处理,但我想在代码中使用它,因此很容易复制。