CSV importálása MS SQL -be

Sziasztok,

CSV file-ok importálásával foglalkoztam MSSQL adatbázisba. Ez egy több féle képpen megközelíthető dolog. Az első amire én is rátaltam a BULK INSERTE-es megoldás ami a következő képpen néz ki:

CREATE TABLE Test
(ID INT,
FirstName VARCHAR(40),
LastName VARCHAR(40),
BirthDate SMALLDATETIME)

BULK INSERT Test
FROM ‘C:\test.csv’
WITH
(
FIRSTROW = 2,
FIELDTERMINATOR=’,’,
ROWTERMINATOR = ‘\n’
)

A “FIRSTROW” azt a célt hivatott betölteni, hogy amennyiben a csv file-unk első pár sora tartalmazza a fejlécet úgy azt ki tudjuk hagyni, különben érvénytelen adat miatt hibát kapunk. Többi megadott paraméter éretelemszerűen a separáló karaktert, valamint a sor végén használt karaktert jelezi.

Ezzel a módszerrel sajnos nekem nem sikerült, (és a fórumok alapján még sok másnak sem) megoldani az exportot.

Az általam használt és működő megoldás az volt, hogy a csv file-t lementettem .xlsx-be majd ezt importáltam a már meglévő adatbázisomba. A feltétel csupán csak annyi, hogy a fejlécnek tartalmaznia kell, az adott oszlopok neveit, tehát header + csv data. Valamint le kell tölteni és installálni az Office System Driver-t. Erről a link-ről érhető el.

Ezek után a Microsoft SQL Server Management Studio-ban az adatbázison jobb klikk majd Tasks – Import Data:
import

Majd ezek után ki kell választanunk az adatforrást ami az adott esetben Microsoft Excel valamint a file elérését.
excelDataSourceKi kell választanunk az adatbázist, hogy hova szeretnénk importálni az adatokat.

dataBaseChoose

Amennyiben a file-unk érvényes, így a következő ablakokkal találkozunk, ahol lehetőségünk van változtatni a tábla nevén és az oszlopainak beállításain.

mappingAmennyiben az adatok megfelelőek úgy lehetőségünk van rá, hogy azonnal elkezdjük a folyamatot. Ha minden rendben zajlott akkor egy hasonló ablakkal kell, hogy találkozzunk:

finish

Az adatbázis táblánk elkészült az általunk módosított/jóváhagyott paraméterek mentén.

A kész táblában viszont nincsen elsődleges azonosító, amit a következő kódrészlettel pótoltam:

addKey

Végül az adatbázis tábla kész és még elsődleges kulcsot is tartalmaz.

Leave a Reply