Import dat z Excelu do SQL Serveru nebo Azure SQL Database
platí pro:SQL Server
azure SQL Database
Existuje několik způsobů, jak importovat data z excelových souborů do SQL Serveru nebo do Azure SQL Database. Některé metody umožňují importovat data v jednom kroku přímo ze souborů Excelu; Jiné metody vyžadují, abyste data Excelu před importem vyexportovali jako text (soubor CSV).
Tento článek shrnuje často používané metody a poskytuje odkazy na podrobnější informace. Úplný popis složitých nástrojů a služeb, jako je SSIS nebo Azure Data Factory, je nad rámec tohoto článku. Další informace o řešení, které vás zajímá, najdete na uvedených odkazech.
Seznam metod
Data z Excelu můžete importovat několika způsoby. Abyste mohli některé z těchto nástrojů používat, musíte nainstalovat SQL Server Management Studio (SSMS).
K importu dat z Excelu můžete použít následující nástroje:
Nejprve exportovat do textu (SQL Server a Azure SQL Database) | Přímo z Excelu (jenom lokální SQL Server) |
---|---|
Průvodce importem plochých souborů | Průvodce importem a exportem SQL Serveru |
příkaz BULK INSERT | SQL Server Integration Services (SSIS) |
nástroj hromadného kopírování (bcp) | funkce OPENROWSET |
průvodce kopírování (Azure Data Factory) | |
Azure Data Factory |
Pokud chcete importovat více listů z excelového sešitu, obvykle musíte pro každý list spustit některý z těchto nástrojů jednou.
Další informace najdete v tématu omezení a známé problémy při načítání dat do nebo z excelových souborů.
Průvodce importem a exportem
Importujte data přímo z excelových souborů pomocí Průvodce importem a exportem SQL Serveru. Nastavení můžete uložit také jako balíček služby SSIS (SQL Server Integration Services), který můžete později přizpůsobit a znovu použít.
V aplikaci SQL Server Management Studio se připojte k instanci databázového stroje SQL Serveru.
Rozbalte databáze.
Klikněte pravým tlačítkem na databázi.
Vyberte úkoly.
Zvolte Importovat data nebo Exportovat data:
Spustí se průvodce:
Další informace najdete v následujících článcích:
- Spuštění průvodce importem a exportem SQL Serveru
- Začínáme s tímto jednoduchým příkladem průvodce importem a exportem
Integrační služby (SSIS)
Pokud znáte službu SQL Server Integration Services (SSIS) a nechcete spustit Průvodce importem a exportem SQL Serveru, můžete místo toho vytvořit balíček SSIS, který používá zdroj aplikace Excel a cíl SQL Serveru v toku dat.
Další informace najdete v následujících článcích:
Pokud se chcete naučit vytvářet balíčky SSIS, přečtěte si kurz Vytvoření balíčku ETL.
OPENROWSET a propojené servery
Důležitý
Ve službě Azure SQL Database nemůžete importovat přímo z Excelu. Nejprve je nutné exportovat data do textového souboru (CSV).
Následující příklady používají zprostředkovatele JET, protože zprostředkovatel ACE, který je součástí Office, který se připojuje ke zdrojům dat Excelu, je určený pro interaktivní použití na straně klienta.
Distribuované dotazy
Importujte data přímo do SQL Serveru ze souborů Excelu pomocí funkce Transact-SQL OPENROWSET
nebo OPENDATASOURCE
. Toto použití se nazývá distribuovaný dotaz.
Důležitý
Ve službě Azure SQL Database nemůžete importovat přímo z Excelu. Nejprve je nutné exportovat data do textového souboru (CSV).
Než budete moct spustit distribuovaný dotaz, musíte povolit možnost konfigurace Ad Hoc Distributed Queries
serveru, jak je znázorněno v následujícím příkladu. Další informace najdete v tématu Konfigurace serveru: Ad Hoc distribuované dotazy.
sp_configure 'show advanced options', 1;
RECONFIGURE;
GO
sp_configure 'Ad Hoc Distributed Queries', 1;
RECONFIGURE;
GO
Následující ukázka kódu používá OPENROWSET
k importu dat z excelového Sheet1
listu do nové databázové tabulky.
USE ImportFromExcel;
GO
SELECT * INTO Data_dq
FROM OPENROWSET('Microsoft.JET.OLEDB.4.0',
'Excel 8.0; Database=C:\Temp\Data.xls', [Sheet1$]);
GO
Tady je stejný příklad s OPENDATASOURCE
.
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
Pokud chcete místo vytvoření nové tabulky přidat importovaná data do existující tabulky, místo syntaxe SELECT ... INTO ... FROM ...
použité v předchozích příkladech použijte syntaxi INSERT INTO ... SELECT ... FROM ...
.
Pokud chcete dotazovat excelová data bez importu, stačí použít standardní syntaxi SELECT ... FROM ...
.
Další informace o distribuovaných dotazech najdete v následujících článcích:
- distribuované dotazy1
- OPENROWSET (Transact-SQL)
- OPENDATASOURCE (Transact-SQL)
1 Distribuované dotazy jsou stále podporovány na SQL Serveru, ale dokumentace k této funkci se neaktualizuje.
Propojené servery
Můžete také nakonfigurovat trvalé připojení z SQL Serveru k excelovému souboru jako linked server. Následující příklad naimportuje data z listu Data
na existujícím propojeném serveru Aplikace Excel EXCELLINK
do nové databázové tabulky SYSTÉMU SQL Server s názvem Data_ls
.
USE ImportFromExcel;
GO
SELECT * INTO Data_ls FROM EXCELLINK...[Data$];
GO
Propojený server můžete vytvořit z APLIKACE SQL Server Management Studio (SSMS) nebo spuštěním systémové uložené procedury sp_addlinkedserver
, jak je znázorněno v následujícím příkladu.
DECLARE @RC INT;
DECLARE @server NVARCHAR(128);
DECLARE @srvproduct NVARCHAR(128);
DECLARE @provider NVARCHAR(128);
DECLARE @datasrc NVARCHAR(4000);
DECLARE @location NVARCHAR(4000);
DECLARE @provstr NVARCHAR(4000);
DECLARE @catalog 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';
EXEC @RC = [master].[dbo].[sp_addlinkedserver] @server,
@srvproduct,
@provider,
@datasrc,
@location,
@provstr,
@catalog;
Další informace o odkazovaných serverech najdete v následujících článcích:
- Vytvoření propojených serverů (SQL Server Database Engine)
- OPENQUERY (Transact-SQL)
Další příklady a informace o odkazovaných serverech a distribuovaných dotazech najdete v následujícím článku:
Požadavky
Pokud chcete použít zbývající metody popsané na této stránce (příkaz BULK INSERT
, nástroj bcp nebo Azure Data Factory), musíte nejprve exportovat excelová data do textového souboru.
Uložení excelových dat jako textu
V Excelu vyberte Soubor | Uložit jako a potom jako cílový typ souboru vyberte Text (Tabem oddělený) (*.txt) nebo CSV (Čárkou oddělený) (*.csv).
Pokud chcete exportovat více listů ze sešitu, vyberte každý list a opakujte tento postup. Příkaz Uložit jako exportuje pouze aktivní list.
Spropitné
Nejlepších výsledků dosáhnete pomocí nástrojů pro import dat, uložte listy, které obsahují pouze záhlaví sloupců a řádky dat. Pokud uložená data obsahují názvy stránek, prázdné řádky, poznámky atd., může se při importu dat zobrazit neočekávané výsledky později.
Průvodce importem plochých souborů
Importujte data uložená jako textové soubory krokováním mezi stránkami Průvodce importem plochých souborů.
Jak je popsáno dříve v části Požadavky, musíte data Aplikace Excel exportovat jako text, abyste je mohli importovat pomocí Průvodce importem plochých souborů.
Další informace o Průvodci importem plochých souborů naleznete v tématu Průvodce importem plochých souborů do SQL.
PŘÍKAZ BULK INSERT
BULK INSERT
je příkaz Transact-SQL, který můžete spustit ze sady SQL Server Management Studio. Následující příklad načte data z Data.csv
souboru s oddělovači do existující databázové tabulky.
Jak je popsáno výše v části Požadavky, musíte data Excelu exportovat jako text, abyste je mohli importovat pomocí BULK INSERT
.
BULK INSERT
nemůže číst excelové soubory přímo. Pomocí příkazu BULK INSERT
můžete importovat soubor CSV uložený místně nebo v úložišti objektů blob v Azure.
USE ImportFromExcel;
GO
BULK INSERT Data_bi FROM 'C:\Temp\data.csv'
WITH (
FIELDTERMINATOR = ',',
ROWTERMINATOR = '\n'
);
GO
Další informace a příklady pro SQL Server a Azure SQL Database najdete v následujících článcích:
- K importu dat do SQL Serveru použijte funkci BULK INSERT nebo OPENROWSET(BULK...).
- hromadné vložení (Transact-SQL)
Nástroj pro hromadné kopírování (bcp)
Nástroj bcp se spustí z příkazového řádku. Následující příklad načte data ze souboru s oddělovači Data.csv
do existující tabulky databáze Data_bcp
.
Jak je popsáno výše v části Požadavky, musíte data Excelu exportovat jako text, abyste je mohli importovat pomocí bcp. Nástroj bcp nemůže přímo číst excelové soubory. Slouží k importu do SQL Serveru nebo služby SQL Database z testovacího souboru (CSV) uloženého do místního úložiště.
Důležitý
Pro textový soubor (CSV) uložený v úložišti objektů blob v Azure použijte BULK INSERT
nebo OPENROWSET
. Příklad najdete v tématu Použití funkce BULK INSERT nebo OPENROWSET(BULK...) k importu dat do sql Serveru.
bcp.exe ImportFromExcel..Data_bcp in "C:\Temp\data.csv" -T -c -t ,
Další informace o bcpnajdete v následujících článcích:
- Import a export hromadných dat pomocí nástroje bcp (SQL Server)
- bcp Utility
- Příprava dat pro hromadný export nebo import
Průvodce kopírováním (ADF)
Importujte data uložená jako textové soubory tak, že si projdete stránky Průvodce kopírováním služby Azure Data Factory (ADF).
Jak je popsáno výše v části Požadavky, musíte data Excelu exportovat jako text, abyste je mohli importovat pomocí služby Azure Data Factory. Data Factory nemůže číst excelové soubory přímo.
Další informace o Průvodci kopírováním najdete v následujících článcích:
- Průvodce kopírováním služby Data Factory
- Kurz: Vytvoření datového toku pomocí aktivity kopírování s Průvodcem kopírováním služby Data Factory.
Azure Data Factory
Pokud jste obeznámeni se službou Azure Data Factory a nechcete spustit Průvodce kopírováním, vytvořte kanál s aktivitou kopírování, která kopíruje z textového souboru na SQL Server nebo do služby Azure SQL Database.
Jak je popsáno výše v části Požadavky, musíte data Excelu exportovat jako text, abyste je mohli importovat pomocí služby Azure Data Factory. Data Factory nemůže číst excelové soubory přímo.
Další informace o používání těchto zdrojů a jímek služby Data Factory najdete v následujících článcích:
Pokud se chcete naučit kopírovat data pomocí služby Azure Data Factory, přečtěte si následující články:
- Přesun dat pomocí kopírovací aktivity
- Návod : Vytvoření kanálu s aktivitou kopírování pomocí portálu Azure