Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
A következőkre vonatkozik:SQL Server Linux rendszeren
Ez a cikk bemutatja, hogyan használhatja a bcp segédprogramot az adatok tömeges másolására linuxos SQL Server-példány és egy felhasználó által megadott formátumú adatfájl között.
A bcp használatával nagy számú sort importálhat SQL Server-táblákba, vagy adatokat exportálhat SQL Server-táblákból adatfájlokba. Kivéve, ha a lekérdezési beállítással használják, bcp nem igényel ismereteket a Transact-SQL-ről. A bcp parancssori segédprogram a Microsoft SQL Serverrel működik, amely a helyszínen vagy a felhőben, Linuxon, Windowson vagy Dockeren, valamint az Azure SQL Database-ben és az Azure Synapse Analyticsben fut.
Ez a cikk bemutatja, hogyan:
- Adatok importálása táblába a
bcp inparanccsal - Adatok exportálása táblázatból a
bcp outparanccsal
Az SQL Server parancssori eszközeinek telepítése
bcp az SQL Server parancssori eszközeinek része, amelyek nincsenek automatikusan telepítve linuxos SQL Serverrel. Ha még nem telepítette az SQL Server parancssori eszközeit a Linux rendszerű gépen, telepítenie kell őket. Az eszközök telepítésével kapcsolatos további információkért válassza ki a Linux-disztribúciót az alábbi listából:
Adatok importálása bcp használatával
Ebben az oktatóanyagban létrehoz egy mintaadatbázist és egy táblát a helyi SQL Server-példányon (localhost), majd bcp használatával betölti a mintatáblát egy lemezen lévő szövegfájlból.
Mintaadatbázis és -tábla létrehozása
Először hozzunk létre egy mintaadatbázist egy egyszerű táblával, amelyet az oktatóanyag többi részében használunk.
A Linux-mezőben nyisson meg egy parancsterminált.
Másolja és illessze be a következő parancsokat a terminálablakba. Ezek a parancsok az sqlcmd parancssori segédprogrammal hoznak létre mintaadatbázist (
BcpSampleDB) és egy táblát (TestEmployees) a helyi SQL Server-példányon (localhost). A parancsok futtatása előtt szükség szerint cserélje le ausernameés<password>.
A jelszónak az SQL Server alapértelmezett jelszóházirendetkell követnie. Alapértelmezés szerint a jelszónak legalább nyolc karakter hosszúnak kell lennie, és a következő négy készletből három karakterből kell állnia: nagybetűk, kisbetűk, 10 számjegyből és szimbólumokból. A jelszavak legfeljebb 128 karakter hosszúak lehetnek. Használjon olyan jelszavakat, amelyek a lehető legkomplexebbek és hosszúak.
Az adatbázis létrehozása BcpSampleDB:
sqlcmd -S localhost -U sa -P <password> -Q "CREATE DATABASE BcpSampleDB;"
Hozza létre a táblát TestEmployees az adatbázisban 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));"
A forrásadatfájl létrehozása
Másolja és illessze be a következő parancsot a terminálablakba. A beépített cat paranccsal létrehozunk egy szöveges mintaadatfájlt, amely három rekordot tartalmaz. Mentsük el a fájlt a kezdőkönyvtáradba ~/test_data.txt. A rekordok mezőit vesszővel tagolja.
cat > ~/test_data.txt << EOF
1,Jared,Australia
2,Nikita,India
3,Tom,Germany
EOF
Az adatfájl helyes létrehozásának ellenőrzéséhez futtassa az alábbi parancsot a terminálablakban:
cat ~/test_data.txt
Ennek a terminálablakban a következőnek kell megjelennie:
1,Jared,Australia
2,Nikita,India
3,Tom,Germany
Adatok importálása a forrásadatfájlból
Másolja és illessze be a következő parancsokat a terminálablakba. Ez a parancs bcp használatával csatlakozik a helyi SQL Server-példányhoz (localhost), és importálja az adatokat az adatbázis (~/test_data.txt) táblájába (TestEmployees) az adatfájlból (BcpSampleDB). A parancsok futtatása előtt ne felejtse el lecserélni a felhasználónevet és a <password>.
bcp TestEmployees in ~/test_data.txt -S localhost -U sa -P <password> -d BcpSampleDB -c -t ','
Az alábbi példában röviden áttekintjük az bcp használt parancssori paramétereket:
-
-S: az SQL Server azon példányát adja meg, amelyhez csatlakozni szeretne -
-U: az SQL Serverhez való csatlakozáshoz használt bejelentkezési azonosítót adja meg -
-P: megadja a bejelentkezési azonosító jelszavát -
-d: megadja a csatlakozni kívánt adatbázist -
-c: karakter adattípussal hajt végre műveleteket -
-t: a mező terminátorát adja meg.commahasználjuk az adatfájl rekordjainak mező terminátoraként
Jegyzet
Ebben a példában nem adunk meg egyéni sorszétválasztót. A szöveges adatfájl sorai helyesen newline végződtek, amikor a cat paranccsal korábban létrehoztuk az adatfájlt.
Az adatok importálásának sikerességét az alábbi parancs futtatásával ellenőrizheti a terminálablakban. A parancs futtatása előtt szükség szerint cserélje le a username és a <password>.
sqlcmd -S localhost -d BcpSampleDB -U sa -P <password> -I -Q "SELECT * FROM TestEmployees;"
Ennek a következő eredményeket kell megjelenítenie:
Id Name Location
----------- ------------------- -------------------
1 Jared Australia
2 Nikita India
3 Tom Germany
Adatok exportálása bcp használatával
Ebben az oktatóanyagban bcp használatával exportál adatokat a korábban létrehozott mintatáblából egy új adatfájlba.
Másolja és illessze be a következő parancsokat a terminálablakba. Ezek a parancsok a bcp parancssori segédprogrammal exportálják az adatokat az adatbázis TestEmployees táblából BcpSampleDB egy ~/test_export.txtnevű új adatfájlba. A parancs futtatása előtt ne felejtse el lecserélni a felhasználónevet és a <password>.
bcp TestEmployees out ~/test_export.txt -S localhost -U sa -P <password> -d BcpSampleDB -c -t ','
Az adatok helyes exportálásának ellenőrzéséhez futtassa a következő parancsot a terminálablakban:
cat ~/test_export.txt
Ennek a terminálablakban a következőnek kell megjelennie:
1,Jared,Australia
2,Nikita,India
3,Tom,Germany