ASP.NET:使用INSERT INTO将Csv导入SQL Server 2008

时间:2014-04-29 07:55:03

标签: sql-server asp.net-mvc csv

我正在研究一个MVC4项目,我偶然发现了这个问题。我试过寻找答案,但现有的答案似乎都不符合我的需求。

问题在于:我有一个SQL表(我们称之为TestTable),它包含以下列: - Id(PK) - 名称(非空) - 地址 - 城市 - 邮政编码 - Facebook - 推特 - 倡议 - 投票 - 行动 ...

我有一个包含以下列的.csv: - 名称 - initiative_no - number_of_votes - number_of_actions

使用SQL Server Management Studio附带的导入向导,将Id和名称导入TestTable一次。必须定期导入csv,其中包含更多最新数据。

现在问题是:我不知道如何将.csv中的数据导入TestTable,而不创建新的表格行。

我不知道语法是否完全正确,但我想做这样的事情:

插入TestTable(计划,投票,行动) VALUES(initiatives_no,number_of_votes,number_of_actions)WHERE TO_UPPER(TestTable.Name)== TO_UPPER(Name)//导入一行,其中csv-name列等于TestTable-name列

我现在已经坚持这个问题一段时间了,我绝对可以使用一些帮助:) 感谢

2 个答案:

答案 0 :(得分:0)

所以你需要更新而不是插入测试表吗?使用导入csv的临时表。然后在两个表之间执行更新连接。这对于临时解决方案来说是可以的。如果需要将其合并到项目中,则将文件读取到内存并迭代每一行并为每一行执行更新连接。如果有帮助,请告诉我

答案 1 :(得分:0)

尝试使用BULK INSERT,这比其他任何东西都快:

    BULK INSERT
        'YOUR_TABLE'
    FROM 
        'C:\ALL_THE_DATA.txt'
    WITH (
        FIELDTERMINATOR= '\t',
        ROWTERMINATOR = '\n' 
    );

当列的顺序不同时,您需要执行某些操作,请检查this