Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro:SQL Server v Linuxu
Tento článek ukazuje, jak pomocí nástroje bcp hromadně kopírovat data mezi instancí SQL Serveru v Linuxu a datovým souborem v uživatelském formátu.
Pomocí bcp můžete importovat velký počet řádků do SQL Server tabulek nebo exportovat data z SQL Server tabulek do datových souborů. Kromě použití s možností dotazu bcp nevyžaduje žádné znalosti o Transact-SQL. Nástroj příkazového řádku bcp funguje s Microsoft SQL Server běžícím místně nebo v cloudu, na Linuxu, Windows, v Dockeru, a s Azure SQL Database a Azure Synapse Analytics.
V tomto článku se dozvíte, jak:
- Import dat do tabulky pomocí příkazu
bcp in - Export dat z tabulky pomocí příkazu
bcp out
Instalace nástrojů příkazového řádku SQL Serveru
bcp je součástí nástrojů příkazového řádku SQL Server, které nejsou automaticky nainstalovány s SQL Server on Linux. Pokud jste na počítači s Linuxem ještě nenainstalovali nástroje příkazového řádku SQL Serveru, musíte je nainstalovat. Další informace o instalaci nástrojů získáte tak, že v následujícím seznamu vyberete distribuci Linuxu:
- Red Hat Enterprise Linux (RHEL)
- Ubuntu
- SUSE Linux Enterprise Server (SLES)
Import dat pomocí bcp
V tomto kurzu vytvoříte ukázkovou databázi a tabulku v místní instanci SQL Server (localhost) a pak použijete bcp k načtení do ukázkové tabulky z textového souboru na disku.
Vytvoření ukázkové databáze a tabulky
Začněte vytvořením ukázkové databáze s jednoduchou tabulkou, která se používá ve zbývající části tohoto kurzu.
V linuxovém poli otevřete příkazový terminál.
Do okna terminálu zkopírujte a vložte následující příkazy. Tyto příkazy používají nástroj příkazového řádku
sqlcmdk vytvoření ukázkové databáze (BcpSampleDB) a tabulky (TestEmployees) v místní instanci SQL Server (localhost). Nezapomeňte před spuštěním příkazů nahraditusernamea<password>.
Vaše heslo by mělo postupovat podle výchozích zásad hesel SQL Serveru . Ve výchozím nastavení musí heslo obsahovat alespoň osm znaků a musí obsahovat znaky ze tří z následujících čtyř sad: velká písmena, malá písmena, číslice se základem 10 a symboly. Hesla můžou mít délku až 128 znaků. Používejte hesla, která jsou co nejdéle a složitá.
Vytvořte databázi BcpSampleDB:
sqlcmd -S localhost -U sa -P <password> -Q "CREATE DATABASE BcpSampleDB;"
Vytvořte tabulku TestEmployees v databázovém BcpSampleDB:
sqlcmd -S localhost -U sa -P <password> -d BcpSampleDB -Q "CREATE TABLE TestEmployees (Id INT IDENTITY(1,1) NOT NULL PRIMARY KEY, Name NVARCHAR(50), Location NVARCHAR(50));"
Vytvoření zdrojového datového souboru
Zkopírujte a vložte následující příkaz do okna terminálu. Pomocí integrovaného příkazu cat vytvoříme ukázkový textový datový soubor se třemi záznamy a uložíme ho do vašeho domovského adresáře jako ~/test_data.txt. Pole v záznamech jsou oddělena čárkou.
cat > ~/test_data.txt << EOF
1,Jared,Australia
2,Nikita,India
3,Tom,Germany
EOF
Spuštěním následujícího příkazu v okně terminálu můžete ověřit, že se datový soubor vytvořil správně:
cat ~/test_data.txt
V okně terminálu by se mělo zobrazit toto:
1,Jared,Australia
2,Nikita,India
3,Tom,Germany
Import dat ze zdrojového datového souboru
Do okna terminálu zkopírujte a vložte následující příkazy. Tento příkaz používá bcp pro připojení k místní instanci SQL Server (localhost) a importuje data z datového souboru (~/test_data.txt) do tabulky (TestEmployees) v databázi (BcpSampleDB). Nezapomeňte před spuštěním příkazů nahradit uživatelské jméno a <password>.
bcp TestEmployees in ~/test_data.txt -S localhost -U sa -P <password> -d BcpSampleDB -c -t ','
Tady je stručný přehled parametrů příkazového řádku, se bcp kterými jsme se seznámili v tomto příkladu:
-
-S: určuje instanci SQL Serveru, ke které se má připojit. -
-U: Určuje přihlašovací ID použité pro připojení k SQL Serveru. -
-P: určuje heslo pro přihlašovací ID. -
-d: určuje databázi, ke které se má připojit. -
-c: Provádí operace pomocí datového typu znaku. -
-t: určuje ukončovací znak pole. Jako ukončovací znak pole pro záznamy v datovém souboru používámecomma.
Poznámka
V tomto příkladu neurčujeme vlastní ukončovací znak řádku. Řádky v textovém datovém souboru byly správně ukončeny znakem newline, když jsme už dříve použili příkaz cat k vytvoření datového souboru.
Úspěšné importování dat můžete ověřit spuštěním následujícího příkazu v okně terminálu. Nezapomeňte před spuštěním příkazu nahradit username a <password>.
sqlcmd -S localhost -d BcpSampleDB -U sa -P <password> -I -Q "SELECT * FROM TestEmployees;"
Mělo by se zobrazit následující výsledky:
Id Name Location
----------- ------------------- -------------------
1 Jared Australia
2 Nikita India
3 Tom Germany
Export dat pomocí bcp
V tomto kurzu použijete bcp k exportu dat z ukázkové tabulky, kterou jsme vytvořili dříve, do nového datového souboru.
Do okna terminálu zkopírujte a vložte následující příkazy. Tyto příkazy používají nástroj příkazového bcp řádku k exportu dat z tabulky TestEmployees v databázi BcpSampleDB do nového datového souboru s názvem ~/test_export.txt. Nezapomeňte před spuštěním příkazu nahradit uživatelské jméno a <password>.
bcp TestEmployees out ~/test_export.txt -S localhost -U sa -P <password> -d BcpSampleDB -c -t ','
Správné exportování dat můžete ověřit spuštěním následujícího příkazu v okně terminálu:
cat ~/test_export.txt
V okně terminálu by se mělo zobrazit toto:
1,Jared,Australia
2,Nikita,India
3,Tom,Germany
Související obsah
- nástroj bcp
- Určení formátů dat kompatibility při použití bcp (SQL Server)
- K importu dat do SQL Serveru použijte funkci BULK INSERT nebo OPENROWSET(BULK...).
- hromadné vložení (Transact-SQL)