Hromadné kopírování dat pomocí bcp na SQL Server v Linuxu
platí pro:SQL Server – Linux
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.
K importu velkého počtu řádků do tabulek SQL Serveru nebo k exportu dat z tabulek SQL Serveru do datových souborů můžete použít bcp. Kromě použití s možností dotazování bcp nevyžaduje žádné znalosti jazyka Transact-SQL. Nástroj příkazového řádku bcp funguje s Microsoft SQL Serverem běžícím místně nebo v cloudu, v Linuxu, Windows nebo Dockeru a 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 Serveru, které nejsou automaticky nainstalovány s SQL Serverem v Linuxu. 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 Serveru (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ěme vytvořením ukázkové databáze s jednoduchou tabulkou, která se používá ve zbytku 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 sqlcmd k vytvoření ukázkové databáze (
BcpSampleDB
) a tabulky (TestEmployees
) v místní instanci SQL Serveru (localhost
). Nezapomeňte před spuštěním příkazů nahraditusername
a<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 Serveru (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, které jsme použili s bcp 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 bcp příkazového řá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)