2016-04-13 123 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;