Megosztás:


Adatok importálása az Excelből az SQL Serverbe vagy az Azure SQL Database-be

A következőkre vonatkozik:SQL ServerAzure SQL Database

Az Excel-fájlokból az SQL Serverbe vagy az Azure SQL Database-be többféleképpen importálhat adatokat. Egyes módszerek lehetővé teszik az adatok egyetlen lépésben történő importálását közvetlenül az Excel-fájlokból; más metódusok esetén az importálás előtt az Excel-adatokat szövegként (CSV-fájlként) kell exportálnia.

Ez a cikk a gyakran használt módszereket foglalja össze, és részletesebb információkra mutató hivatkozásokat tartalmaz. Az olyan összetett eszközök és szolgáltatások teljes leírása, mint az SSIS vagy az Azure Data Factory, meghaladja a jelen cikk hatókörét. Az Önt érdeklő megoldással kapcsolatos további információkért kövesse a megadott hivatkozásokat.

Metódusok listája

Az Adatok importálása az Excelből többféleképpen is lehetséges. Telepítse az SQL Server Management Studio (SSMS) legújabb verzióját ezen eszközök némelyikének használatához.

A következő eszközökkel importálhat adatokat az Excelből:

Először exportálás szövegbe (SQL Server és Azure SQL Database) Közvetlenül az Excelből (csak a helyszíni SQL Serverről)
Lapos fájl importáló varázsló SQL Server Importálás és Exportálás Varázsló
BULK INSERT utasítás SQL Server Integration Services (SSIS)
tömeges másolási eszköz (bcp) OPENROWSET függvény
Másolási varázsló (Azure Data Factory)
Azure Data Factory

Ha több munkalapot szeretne importálni egy Excel-munkafüzetből, általában mindegyik munkalapon egyszer kell futtatnia ezeket az eszközöket.

További információ: korlátozások és az Excel-fájlokba adatok betöltésének ismert problémái.

Importálás és Exportálás Varázsló

Adatok importálása közvetlenül Excel-fájlokból az SQL Server Importálás és exportálás varázslóval. A beállításokat SQL Server Integration Services-csomagként (SSIS) is mentheti, amelyet később testre szabhat és újra felhasználhat.

  1. Az SQL Server Management Studióban csatlakozzon az SQL Server Adatbázismotor egy példányához.

  2. Terjessze ki Adatbázisok.

  3. Kattintson a jobb gombbal egy adatbázisra.

  4. Válassza Tevékenységeklehetőséget.

  5. Válassza Adatok importálása vagy Adatok exportálása:

    Start varázsló SSMS-jének képernyőképe.

Ezzel elindítja a varázslót:

Excel-adatforráshoz való csatlakozás képernyőképe.

További információkért lásd a következő cikkeket:

Integration Services (SSIS)

Ha ismeri az SQL Server Integration Services (SSIS) szolgáltatást, és nem szeretné futtatni az SQL Server Importálás és exportálás varázslót, létrehozhat egy SSIS-csomagot, amely az adatfolyamban az Excel-forrást és az SQL Server-célhelyet használja.

További információkért lásd a következő cikkeket:

Az SSIS-csomagok létrehozásának megismeréséhez tekintse meg az oktatóanyagot, ETL-csomag létrehozása.

Képernyőkép az adatfolyam összetevőiről.

OPENROWSET és társított kiszolgálók

Fontos

Az Azure SQL Database-ben nem importálhat közvetlenül az Excelből. Először exportálnia kell az adatokat egy szövegfájlba (CSV).

Az alábbi példák a JET-szolgáltatót használják. Az Excel-adatforrásokhoz csatlakozó Office ACE-szolgáltató interaktív ügyféloldali használatra készült, amely nem interaktív használat esetén váratlan eredményeket okozhat.

Elosztott lekérdezések

Adatok importálása közvetlenül az SQL Serverbe Excel-fájlokból a Transact-SQL OPENROWSET vagy OPENDATASOURCE függvénnyel. Ezt a használatot elosztott lekérdezésinevezik.

Fontos

Az Azure SQL Database-ben nem importálhat közvetlenül az Excelből. Először exportálnia kell az adatokat egy szövegfájlba (CSV).

Az elosztott lekérdezések futtatása előtt engedélyeznie kell a Ad Hoc Distributed Queries kiszolgáló konfigurációs beállítását, ahogyan az az alábbi példában látható. További információ: kiszolgálókonfiguráció: Alkalmi elosztott lekérdezések.

EXECUTE sp_configure 'show advanced options', 1;
RECONFIGURE;
GO

EXECUTE sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO

Az alábbi kódminta OPENROWSET használatával importálja az adatokat az Excel Sheet1 munkalapról egy új adatbázistáblába.

USE ImportFromExcel;
GO

SELECT * INTO Data_dq
FROM OPENROWSET('Microsoft.JET.OLEDB.4.0',
    'Excel 8.0; Database=C:\Temp\Data.xls', [Sheet1$]);
GO

Itt van ugyanaz a példa a OPENDATASOURCE-al.

USE ImportFromExcel;
GO

SELECT * INTO Data_dq
FROM OPENDATASOURCE('Microsoft.JET.OLEDB.4.0',
    'Data Source=C:\Temp\Data.xls;Extended Properties=Excel 8.0')...[Sheet1$];
GO

Ha az importált adatokat új tábla létrehozása helyett meglévő táblához szeretné hozzáfűzni, használja az INSERT INTO ... SELECT ... FROM ... szintaxist az előző példákban használt SELECT ... INTO ... FROM ... szintaxis helyett.

Ha importálás nélkül szeretné lekérdezni az Excel-adatokat, használja a szabványos SELECT ... FROM ... szintaxist.

Az elosztott lekérdezésekkel kapcsolatos további információkért tekintse meg az alábbi cikkeket:

1 elosztott lekérdezés továbbra is támogatott az SQL Serverben, de a funkció dokumentációja nem frissül.

Csatolt kiszolgálók

Az SQL Server és az Excel fájl közötti állandó kapcsolatot is konfigurálhatja csatolt kiszolgálóként. Az alábbi példa a meglévő Excel-csatolt kiszolgáló Data munkalapjáról importálja az adatokat egy EXCELLINKnevű új SQL Server-adatbázistáblába Data_ls.

USE ImportFromExcel;
GO

SELECT * INTO Data_ls FROM EXCELLINK...[Data$];
GO

Csatolt kiszolgálót az SQL Server Management Studióból (SSMS) vagy a rendszer által tárolt eljárás sp_addlinkedserverfuttatásával hozhat létre, ahogyan az alábbi példában is látható.

DECLARE @RC AS INT;
DECLARE @server AS NVARCHAR (128);
DECLARE @srvproduct AS NVARCHAR (128);
DECLARE @provider AS NVARCHAR (128);
DECLARE @datasrc AS NVARCHAR (4000);
DECLARE @location AS NVARCHAR (4000);
DECLARE @provstr AS NVARCHAR (4000);
DECLARE @catalog AS NVARCHAR (128);

-- Set parameter values
SET @server = 'EXCELLINK';
SET @srvproduct = 'Excel';
SET @provider = 'Microsoft.JET.OLEDB.4.0';
SET @datasrc = 'C:\Temp\Data.xls';
SET @provstr = 'Excel 8.0';

EXECUTE
    @RC = [master].[dbo].[sp_addlinkedserver]
    @server,
    @srvproduct,
    @provider,
    @datasrc,
    @location,
    @provstr,
    @catalog;

A csatolt kiszolgálókról az alábbi cikkekben talál további információt:

A csatolt kiszolgálókra és az elosztott lekérdezésekre vonatkozó további példákért és információkért tekintse meg a következő cikket:

Előfeltételek

Az ezen a lapon ismertetett többi metódus (a BULK INSERT utasítás, a bcp eszköz vagy az Azure Data Factory) használatához először exportálnia kell az Excel-adatokat egy szövegfájlba.

Excel-adatok mentése szövegként

Az Excelben válassza a Fájl | Mentés másként parancsot, majd válassza a Szöveg (tabulátorral tagolt) (*.txt) vagy a CSV (vessző által tagolt) (*.csv) mint célfájltípus.

Ha több munkalapot szeretne exportálni a munkafüzetből, jelölje ki az egyes munkalapokat, majd ismételje meg ezt az eljárást. A Mentés parancs csak az aktív lapot exportálja.

Borravaló

Az adatimportáló eszközökkel elérhető legjobb eredmények érdekében mentse azokat a lapokat, amelyek csak az oszlopfejléceket és az adatsorokat tartalmazzák. Ha a mentett adatok oldalcímeket, üres sorokat, jegyzeteket és így tovább tartalmaznak, előfordulhat, hogy az adatok importálásakor később váratlan eredmények jelennek meg.

Sík fájl importálása varázsló

Az Import Síkfájl Varázsló lapjain végiglépve importálhatja a szövegfájlként mentett adatokat.

Az Előfeltételek szakaszban leírtaknak megfelelően az Excel-adatokat szövegként kell exportálnia, mielőtt importálni tudja azokat az Egybesimított fájl importálása varázslóval.

Az Egybesimított fájl importálása varázslóval kapcsolatos további információkért lásd: Egybesimított fájl importálása az SQL Varázslóba.

TÖMEGES BESZÚRÁS parancs

BULK INSERT egy Transact-SQL parancs, amelyet az SQL Server Management Studióból futtathat. Az alábbi példa betölti az adatokat a Data.csv vessző által tagolt fájlból egy meglévő adatbázistáblába.

Az Előfeltételek szakaszban leírtaknak megfelelően az Excel-adatokat szövegként kell exportálnia, mielőtt importálni tudja BULK INSERT. BULK INSERT nem tudja közvetlenül olvasni az Excel-fájlokat. A BULK INSERT paranccsal importálhatja a helyileg vagy az Azure Blob Storage-ban tárolt CSV-fájlokat.

USE ImportFromExcel;
GO

BULK INSERT Data_bi FROM 'C:\Temp\data.csv'
    WITH (FIELDTERMINATOR = ',', ROWTERMINATOR = '\n');
GO

Az SQL Serverrel és az Azure SQL Database-rel kapcsolatos további információkért és példákért tekintse meg az alábbi cikkeket:

A nagymennyiségű adatmásolási eszköz (bcp)

A bcp eszköz a parancssorból fut. Az alábbi példa betölti az adatokat a Data.csv vessző által tagolt fájlból a meglévő Data_bcp adatbázistáblába.

Az Előfeltételek szakaszban leírtaknak megfelelően az Excel-adatokat szövegként kell exportálnia, mielőtt importálni tudja bcp. A bcp eszköz nem tudja közvetlenül olvasni az Excel-fájlokat. A helyi tárolóba mentett tesztfájlból (CSV) importálható az SQL Serverbe vagy az SQL Database-be.

Fontos

Az Azure Blob Storage-ban tárolt szöveges (CSV-) fájlokhoz használja BULK INSERT vagy OPENROWSET. Példaként lásd: Az adatok importálása az SQL Serverbe a BULK INSERT vagy az OPENROWSET(BULK...) használatával.

bcp.exe ImportFromExcel..Data_bcp in "C:\Temp\data.csv" -T -c -t ,

További információ a bcp-ről a következő cikkekben található.

Másolás varázsló (ADF)

Az Azure Data Factory (ADF) Másolás varázslójának lapjaira lépve importálhatja a szövegfájlként mentett adatokat.

Az Előfeltételek szakaszban leírtaknak megfelelően az Excel-adatokat szövegként kell exportálnia, mielőtt importálni tudja azOkat az Azure Data Factory használatával. A Data Factory nem tudja közvetlenül olvasni az Excel-fájlokat.

A Másolás varázslóval kapcsolatos további információkért tekintse meg a következő cikkeket:

Azure Data Factory

Ha ismeri az Azure Data Factoryt, és nem szeretné futtatni a Másolás varázslót, hozzon létre egy másolási tevékenységet tartalmazó folyamatot, amely a szövegfájlból az SQL Serverbe vagy az Azure SQL Database-be másol.

Az Előfeltételek szakaszban leírtaknak megfelelően az Excel-adatokat szövegként kell exportálnia, mielőtt importálni tudja azOkat az Azure Data Factory használatával. A Data Factory nem tudja közvetlenül olvasni az Excel-fájlokat.

A Data Factory-források és -fogadók használatáról az alábbi cikkekben talál további információt:

Az adatok Azure Data Factoryvel való másolásának megismeréséhez tekintse meg az alábbi cikkeket: