2016-04-13 14 views
1

Bir ASP.NET uygulaması yapıyorum ve bir CSV dosyasından SQL Server'a veri eklemek istiyorum..csv dosyasını BULK INSERT ile SQL Server'a ekleyin ve sütunları yeniden sıralayın

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

Oldukça eserler ama AUTO INCREMENT seçeneğiyle sahip bir kimlik sütunu vardır: Bu SQL komutu ile yaptım. Eklenen sütunları SQL server artışını otomatik olarak Id sütununa yeniden sıralamak istiyorum.

Bunu BULK yöntemiyle nasıl yapabilirim? Benim yorum söylediğim gibi

cevap

3

:

(P tabii ki, manuel .csv dosyasını düzenlemek istemiyorum): Sen, toplu ekleme sadece verileri pompalar olamaz, sen dönüştürmek olamaz veri herhangi bir şekilde. Yapabilecekleriniz, hazırlama tablolarına toplu olarak eklemek ve yapmanız gerekenleri yapmak için bir ekleme ifadesi kullanmaktır.

Böyle yapabilirsiniz:

-- 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;