2016-04-13 88 views
1

我制作了一个ASP.NET应用程序,并且希望将数据从CSV文件插入到我的SQL Server中。我用这个SQL命令这样做是:将.csv文件插入带有BULK INSERT和重新排序列的SQL Server中

BULK 
INSERT Shops 
FROM 'C:\..\file.csv' 
WITH 
(
    FIELDTERMINATOR = ';', 
    ROWTERMINATOR = '\n' 
); 

它漂亮的作品,但我有一个id列与AUTO INCREMENT选项。我想重新排序插入的列到SQL服务器增量自动Id列。

我该怎么做BULK方法?

(当然,我不希望编辑manualy .csv文件:P)

回答

3

就像我在我的评论说:你不能,批量插入正好泵中的数据,你不能改变数据以任何方式。你可以做的是批量插入登台表并使用插入语句来完成你需要做的事情。

你可以这样说:

-- Create staging table 
SELECT TOP 0 * 
INTO  Shops_temp 
FROM  Shops; 


-- Bulk insert into staging 
BULK INSERT Shops_temp 
FROM 'C:\..\file.csv' 
WITH 
(
    FIELDTERMINATOR = ';', 
    ROWTERMINATOR = '\n' 
); 


-- Insert into actual table, use SELECT for transformation, column order etc. 
INSERT INTO Shops(name, etc..) 
SELECT name 
,  etc.. 
FROM Shops_temp; 


-- Cleanup 
DROP TABLE Shops_temp;