Když pracujete jako správce nebo vývojář databáze SQL Server, nemůžete žít ve svém izolovaném světě SQL Serveru bez komunikace s jinými zdroji dat. Například zřídkakdy nastane den, kdy nebudete požádáni o import dat ze souboru Excel, Access nebo CSV do vaší tabulky SQL Serveru. Nebo naopak exportujte jednu ze svých databázových tabulek SQL Serveru do externího souboru, aby mohla být tato tabulka použita v jiném databázovém stroji nebo aby mohla být externě analyzována příslušným týmem.
SQL Server nám poskytuje řadu metod, které lze použít k exportu existující databázové tabulky SQL Serveru do Excelu nebo textového souboru a importu dat z externího zdroje dat do nové nebo existující databázové tabulky SQL Serveru. V tomto článku si všechny tyto metody postupně probereme.
Nástroj BCP
Nástroj Bulk Copy Program, také známý jako BCP, je nástroj příkazového řádku, který lze použít k importu velkého počtu řádků z datového souboru operačního systému do vaší databázové tabulky SQL Server nebo k exportu existující databázové tabulky SQL Serveru do operačního systému. systémový datový soubor.
Syntaxe nástroje BCP obsahuje velké množství možností. Toto jsou ty nejběžněji používané:
- Název databázové tabulky nebo pohledu SQL Serveru – toto bude fungovat jako zdroj dat v případě procesu exportu dat a jako cíl v případě procesu importu dat.
- Směr dat, kde IN označuje import dat a OUT označuje export dat.
- Název místního datového souboru, který bude fungovat jako zdroj v případě procesu importu dat a jako cíl v případě procesu exportu dat.
- -S server\instance – používá se k zadání názvu instance serveru SQL.
- –d – používá se k určení databáze, která obsahuje zdrojovou nebo cílovou tabulku.
- -T – používá se k určení, že pro připojení k serveru SQL bude použito ověřování systému Windows.
- -U uživatelské jméno a heslo -P – tyto určují uživatelské jméno a heslo použité pro připojení k instanci SQL Server.
- Nástroj Bulk Copy Program, také známý jako BCP, je nástroj příkazového řádku, který lze použít k importu velkého počtu řádků z datového souboru operačního systému do vaší databázové tabulky SQL Server nebo exportu existující databázové tabulky SQL Server. do datového souboru operačního systému. – tyto se používají k určení formátu zdrojového nebo cílového datového souboru a oddělovačů použitých v tomto datovém souboru.
Například níže uvedený příkaz BCP se používá k exportu obsah databázové tabulky Employee_Main hromadně do souboru CSV takto:
bcp AdventureWorks2016CTP3.dbo.Employee_Main out C:\Test\Employees.csv -S MININT-QQBE87A -T -c -t , -r \n
Tato data budou rychle zkopírována do souboru CSV, jak ukazuje výsledek níže:
Chcete-li importovat obsah souboru CSV do databázové tabulky, lze k tomu rychle hromadně použít následující příkaz BCP:
bcp AdventureWorks.dbo.Employee_Main v C:\Test\Employees.csv -S MININT-QQBE87A -T -c -t , -r \n
A data budou vložena do databázové tabulky, jak ukazuje výsledek níže:
Tím, že strávíte několik minut přípravou těchto příkazů se správnými možnostmi, můžete snadno použít nástroj BCP k importu dat z textových datových souborů nebo je exportovat do nich.
HROMADNÉ VLOŽENÍ
HROMADNÉ VLOŽENÍ T-SQL příkaz funguje podobně jako BCP IN a používá se k importu dat z datového souboru, který je přístupný službou SQL Server, do databázové tabulky SQL Serveru – vše se provádí přímo v SQL Serveru. Na rozdíl od příkazu BCP IN lze příkaz BULK INSERT seskupit s dalšími operacemi v jediné transakci SQL Serveru, která běží pod vaší kontrolou.
Níže uvedený příkaz BULK INSERT T-SQL lze použít k importu dat ze souboru CSV do existující databázové tabulky s uvedením oddělovačů sloupců i řádků, jak je uvedeno níže:
BULK INSERT AdventureWorks.dbo.Employee_Main FROM 'C:\Test\Employees.csv' WITH ( FIELDTERMINATOR =',', ROWTERMINATOR ='\n' ); GO
OPENROWSET
Funkce OPENROWSET se používá k připojení ke zdrojům dat pomocí poskytovatele připojení OLEDB a poté pomocí zadaného dotazu T-SQL k načtení dat z tohoto zdroje dat. Klíčové výhody funkce OPENROWSET oproti metodám BCP a BULK INSERT jsou následující:
- data získaná příkazem OPENROWSET můžete filtrovat pomocí klauzule WHERE
- můžete jej použít v příkazu SELECT pro čtení dat ze zdroje dat – nejen pomocí příkazu INSERT
Chcete-li použít příkaz OPENROWSET, budete muset povolit ad hoc distribuované dotazy možnost konfigurace systému nejprve pomocí skriptu níže:
sp_configure 'show advanced options', 1; RECONFIGURE; GO sp_configure 'Ad Hoc Distributed Queries', 1; RECONFIGURE; GO
Po povolení možnosti konfigurace systému distribuovaných dotazů ad hoc můžete použít funkci OPENROWSET k importu dat do databázových tabulek SQL Serveru ze souborů CSV s dříve definovaným formátem dat, jak je znázorněno v dotazu T-SQL níže:
INSERT INTO [AdventureWorks].[dbo].[Employee_Main] ([EMP_FirsrName],[EMP_LastName],[EMP_BirthDate],[EMP_PhoneNumber]) SELECT [EMP_FirsrName],[EMP_LastName],[EMP_BirthDate],[EMP_PhoneNumber] FROM OPENROWSET( BULK 'C:\Test\Employees.csv', FORMATFILE = 'C:\Test\Fmt.xml' ) AS rows;
Propojený server
SQL Server Linked Server je objekt serveru, který je nakonfigurován tak, aby umožňoval databázovému stroji SQL Server připojit se k různým typům zdrojů dat OLE DB mimo instanci SQL Server. Propojený server lze snadno vytvořit pomocí SQL Server Management Studio nebo příkazů T-SQL, jak je znázorněno níže:
Po vytvoření lze propojený server snadno použít k přístupu ke vzdálenému zdroji dat a importu odpovídajících dat do databázové tabulky SQL Serveru, jak je znázorněno v dotazu T-SQL níže:
INSERT INTO [AdventureWorks].[dbo].[Employee_Main] ([EMP_FirsrName],[EMP_LastName],[EMP_BirthDate],[EMP_PhoneNumber],[EMP_Address]) SELECT [EMP_FirsrName],[EMP_LastName],[EMP_BirthDate],[EMP_PhoneNumber],[EMP_Address] FROM TEST...Employee_Main$
Průvodce exportem/importem serveru SQL
Průvodce exportem a importem SQL Server nám poskytuje jednoduché rozhraní pro vytváření balíčků SQL Server Integration Service, které lze ihned použít nebo uložit pro pozdější použití. Tyto balíčky umožňují importovat data a exportovat je do široké škály zdrojů dat, počínaje jednoduchými plochými soubory a konče složitějšími databázovými stroji.
Průvodce exportem a importem lze použít například k importu dat ze zdroje dat aplikace Excel do existující databázové tabulky. Následující kroky popisují tento proces:
- V Průzkumníku objektů SQL Server Management Studio klikněte pravým tlačítkem na databázi AdventureWorks, která obsahuje tabulku, do které budete data zapisovat. Poté vyberte možnost Importovat data možnost z Úkoly podnabídka:
- Otevře se Průvodce importem a exportem serveru SQL Server. V části Vyberte zdroj dat zadejte typ zdroje dat. V tomto konkrétním příkladu vybereme Microsoft Excel a úplnou cestu k požadovanému souboru Excel. Po zadání klikněte na Další knoflík:
- V části Vyberte cíl v okně, budete požádáni o zadání typu cíle, do kterého budou zdrojová data zapsána. V našem příkladu je to databáze SQL Server. Budete také požádáni o zadání názvu serveru, přihlašovacích údajů a názvu databáze, ve které je umístěna cílová tabulka. Po zadání všech těchto informací klikněte na Další pokračovat:
- V části Zadat kopii tabulky nebo dotaz V okně, budete mít možnost buď zkopírovat všechna data ze zdroje do existující nebo nové tabulky, nebo napsat přizpůsobený dotaz pro načtení určitého rozsahu dat. Až se rozhodnete, klikněte na Další knoflík:
- V části Vybrat zdrojové tabulky a zobrazení určete zdrojový list nebo tabulku ze zdroje dat a cílovou tabulku, do které budou zdrojová data zapsána. Budete mít možnost zobrazit náhled zdroje, zkontrolovat mapování sloupců mezi zdrojovou a cílovou tabulkou a určit, zda mají být data připojena k existující tabulce nebo k nově vygenerované tabulce. Klikněte na tlačítko Další tlačítko pro pokračování:
- V balíčku Uložit a spustit V okně, máte možnost uložit balíček SSIS, který je vytvořen v rámci Průvodce importem a exportem, a spustit jej okamžitě nebo uložit pro naplánování nebo spuštění později. Klikněte na tlačítko Další tlačítko pro pokračování:
- V části Dokončit průvodce v okně, uvidíte souhrn vybraných možností a poskytnutých nastavení. Klikněte na tlačítko Dokončit tlačítko pro zahájení kopírování dat:
- Po dokončení procesu kopírování zobrazí průvodce počet záznamů zkopírovaných do každé tabulky. Pokud nejsou žádné chyby, můžete kliknout na Zavřít tlačítko pro zavření okna:Z předchozího příkladu můžete vidět, že průvodce importem a exportem lze snadno použít ke kopírování dat mezi různými typy datových zdrojů a destinací, bez ohledu na vztah mezi tabulkami. Pokud má tabulka omezení cizího klíče, které odkazuje na jeden ze sloupců nadřazené tabulky, musíte pořadí procesu kopírování dat řídit ručně. Chcete-li navíc zahájit nový proces importu dat, budete muset zavřít průvodce a znovu jej otevřít.
Datová pumpa dbForge
dbForge Data Pump je nástroj třetí strany, který je součástí SQL Server Management Studio jako doplněk. Lze jej použít ke snadné migraci dat mezi SQL Serverem a různými externími datovými zdroji. Umožňuje importovat a exportovat z více než 10 běžně používaných datových formátů (Text, MS Excel, XML, CSV, JSON atd.) s řadou pokročilých možností a šablon, které lze použít pro opakující se scénáře.
Po stažení dbForge Data Pump ze stránky stahování Devart ji budete muset nainstalovat do stroje jako doplněk nástroje SSMS, jak je znázorněno níže:
Export dat
dbForge Data Pump lze použít v rámci SSMS k exportu dat z databázové tabulky SQL Serveru nebo k zobrazení dat ve 13 podporovaných typech formátů včetně HTML, Text, MS Excel, MS Excel 2007, MS Access, RTF, PDF, XML, CSV, ODBC, DBF (Foxpro, dBase III, dBase IV, dBase 7), SQL a JSON.
Chcete-li exportovat data z konkrétní tabulky serveru SQL, postupujte podle následujících kroků:
- Připojte se k instanci SQL Server prostřednictvím SSMS. V Průzkumníku objektů klikněte pravým tlačítkem na databázi obsahující zdrojovou tabulku a zvolte Exportovat data z Datové pumpy podnabídka:
- V Formát exportu vyberte formát souboru, do kterého budou data zdrojové tabulky exportována, nebo načtěte dříve uloženou šablonu. V našem příkladu zvolíme MS Excel 2007. Klikněte na Další tlačítko pro pokračování:
- V okně Zdroj zkontrolujte podrobnosti připojení a vyberte tabulky obsahující zdrojová data k exportu. Klikněte na Další pokračovat:
- V nabídce Možnosti zaškrtněte a nastavte různé přizpůsobitelné možnosti pro mřížku tabulky exportovaných dat. Poté klikněte na Další pokračovat:
- V části Formáty dat v okně Sloupce vyberte sloupce, které budou exportovány, a zkontrolujte jejich datové typy:Také v části Formáty nastavte formát různých datových typů pro vybrané sloupce. Klikněte na tlačítko Další tlačítko pro pokračování:
- V Nastavení tisku stránky můžete nastavit různé možnosti pro stránky exportovaného souboru pro účely tisku. Klikněte na Další pokračovat:
- V Exportovaných řádcích zadejte rozsah řádků, které se mají exportovat ze zdrojové tabulky, nebo zvolte export všech řádků tabulky. Klikněte na Další pokračovat:
- Zpracování chyb okno vám poskytuje řadu možností, které lze použít k určení, jak zpracovat chyby, pokud se vyskytnou, a kam zaznamenat výsledky provádění. Klikněte na Uložit šablonu chcete-li uložit nastavení jako šablonu pro budoucí použití, nebo stiskněte tlačítko Exportovat tlačítko pro zahájení procesu exportu dat, jak je znázorněno níže:Během procesu exportu dat vám Data Pump poskytne informační zprávy, které zobrazují počet záznamů zkopírovaných z aktuální tabulka, jak je uvedeno níže:Po úspěšném dokončení procesu exportu dat se zobrazí shrnutí procesu exportu. Budou poskytnuty možnosti pro otevření vygenerovaného souboru nebo složky, která jej obsahuje, a pro export dalších dat ze stejné stránky bez nutnosti zavírat a znovu otevírat nástroj:
Import dat
dbForge Data Pump lze použít v rámci SSMS k importu dat do databázové tabulky SQL Serveru. Je podporováno následujících 9 široce používaných datových formátů:Text, MS Excel, MS Excel 2007, MS Access, XML, CSV, ODBC, DBF (Foxpro, dBase III, dBase IV, dBase 7) a JSON.
Chcete-li importovat data z listu aplikace Excel do konkrétní tabulky serveru SQL, postupujte takto:
- Připojte se k instanci SQL Server pomocí SSMS. V Průzkumníku objektů klikněte pravým tlačítkem na databázi obsahující cílovou databázovou tabulku a zvolte Importovat Data z Datové pumpy podnabídka:
- V Zdrojovém souboru vyberte formát zdrojového souboru nebo jednoduše načtěte dříve uloženou šablonu a proveďte proces importu. V našem příkladu použijeme Microsoft Excel 2007 a klikneme na Procházet tlačítko pro vyhledání listu Excel. Klikněte na tlačítko Další tlačítko pro pokračování:
- V Cíl v okně, zkontrolujte informace o připojení a určete, zda mají být data importována do nové tabulky nebo do existující tabulky z poskytnutého seznamu. Klikněte na Další pokračovat:
- V nabídce Možnosti můžete nastavit různé možnosti, které určují umístění záhlaví a dat ve zdrojovém souboru, s možností zobrazit náhled dat zdrojového souboru před importem. Klikněte na Další pokračovat:
- V části Formáty dat můžete upravit formát datového typu pro různé textové sloupce ve zdrojovém souboru před jeho importem do databázové tabulky. Klikněte na Další pokračovat:
- V Mapování můžete mapovat sloupce ze zdrojového souboru do cílové databázové tabulky s možností náhledu dat po provedení změny. Klikněte na Další pokračovat:
- V režimech můžete určit režim importu dat, jako je připojení dat k existujícím datům v cílové tabulce a hromadné vložení nebo import dat pomocí jedné transakce. Klikněte na Další pokračovat:
- V části Výstup můžete zadat, že chcete vygenerovat nebo uložit skript pro import dat nebo okamžitě pokračovat v procesu importu dat. Klikněte na Další pokračovat:
- Zpracování chyb okno vám poskytuje řadu možností, které lze použít k určení, jak se chovat, pokud dojde k chybám, a kam zaznamenat výsledky provádění. Klikněte na Uložit šablonu uložit nastavení jako šablonu pro budoucí použití nebo Import tlačítko pro zahájení procesu importu dat, jak je znázorněno níže:
- Po úspěšném dokončení procesu importu zobrazí průvodce souhrn počtu importovaných záznamů. Budete mít možnost zkontrolovat soubor protokolu chyb v případě, že se vyskytly nějaké chyby, a importovat další soubory ze stejného okna, aniž byste museli nástroj zavírat a znovu otevírat:
Z předchozího příkladu je zřejmé, že nástroj dbForge Data Pump nám poskytuje možnost importovat a exportovat data do az různých formátů datových souborů. Průvodce určený k tomu se snadno konfiguruje, je bohatý na různé možnosti a nevyžaduje žádné vývojářské úsilí. Zaslouží si to vyzkoušet!