Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server – Linux
Den här artikeln visar hur du använder verktyget bcp för att masskopiera data mellan en instans av SQL Server i Linux och en datafil i ett användardefinieringsformat.
Du kan använda bcp- för att importera ett stort antal rader till SQL Server-tabeller eller för att exportera data från SQL Server-tabeller till datafiler. Förutom när det används med frågealternativet kräver bcp ingen kunskap om Transact-SQL. Kommandoradsverktyget bcp fungerar med Microsoft SQL Server som körs lokalt eller i molnet, i Linux, Windows eller Docker och Azure SQL Database och Azure Synapse Analytics.
Den här artikeln visar hur du:
- Importera data till en tabell med hjälp av kommandot
bcp in - Exportera data från en tabell med hjälp av kommandot
bcp out
Installera kommandoradsverktygen för SQL Server
bcp ingår i SQL Server-kommandoradsverktygen, som inte installeras automatiskt med SQL Server i Linux. Om du inte redan har installerat SQL Server-kommandoradsverktygen på Linux-datorn måste du installera dem. Om du vill ha mer information om hur du installerar verktygen väljer du din Linux-distribution i följande lista:
Importera data med bcp
I den här självstudien skapar du en exempeldatabas och en tabell på den lokala SQL Server-instansen (localhost) och använder sedan bcp för att läsa in data i exempeltabellen från en textfil på hårddisken.
Skapa en exempeldatabas och tabell
Vi börjar med att skapa en exempeldatabas med en enkel tabell som används i resten av den här självstudien.
Öppna en kommandoterminal i Linux-rutan.
Kopiera och klistra in följande kommandon i terminalfönstret. Dessa kommandon använder kommandoradsverktyget sqlcmd för att skapa en exempeldatabas (
BcpSampleDB) och en tabell (TestEmployees) på den lokala SQL Server-instansen (localhost). Kom ihåg att ersättausernameoch<password>efter behov innan du kör kommandona.
Lösenordet bör följa SQL Server-standardprincipen för lösenord. Lösenordet måste som standard vara minst åtta tecken långt och innehålla tecken från tre av följande fyra uppsättningar: versaler, gemener, bas-10 siffror och symboler. Lösenord kan vara upp till 128 tecken långa. Använd lösenord som är så långa och komplexa som möjligt.
Skapa databasen BcpSampleDB:
sqlcmd -S localhost -U sa -P <password> -Q "CREATE DATABASE BcpSampleDB;"
Skapa tabellen TestEmployees i databasen 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));"
Skapa källdatafilen
Kopiera och klistra in följande kommando i terminalfönstret. Vi använder det inbyggda kommandot cat för att skapa en exempeltextdatafil med tre poster och spara filen i din hemkatalog som ~/test_data.txt. Fälten i posterna avgränsas av ett kommatecken.
cat > ~/test_data.txt << EOF
1,Jared,Australia
2,Nikita,India
3,Tom,Germany
EOF
Du kan kontrollera att datafilen har skapats korrekt genom att köra följande kommando i terminalfönstret:
cat ~/test_data.txt
Detta bör visa följande i terminalfönstret:
1,Jared,Australia
2,Nikita,India
3,Tom,Germany
Importera data från källdatafilen
Kopiera och klistra in följande kommandon i terminalfönstret. Det här kommandot använder bcp för att ansluta till den lokala SQL Server-instansen (localhost) och importera data från datafilen (~/test_data.txt) till tabellen (TestEmployees) i databasen (BcpSampleDB). Kom ihåg att ersätta användarnamnet och <password> efter behov innan du kör kommandona.
bcp TestEmployees in ~/test_data.txt -S localhost -U sa -P <password> -d BcpSampleDB -c -t ','
Här är en kort översikt över de kommandoradsparametrar som vi använde med bcp- i det här exemplet:
-
-S: anger den instans av SQL Server som du vill ansluta till -
-U: anger inloggnings-ID:t som används för att ansluta till SQL Server -
-P: anger lösenordet för inloggnings-ID:t -
-d: anger databasen som ska anslutas till -
-c: utför åtgärder med hjälp av en teckendatatyp -
-t: anger fältavslutaren. Vi användercommasom fältavgränsare för posterna i vår datafil
Not
Vi anger inte en anpassad radavgränsare i det här exemplet. Rader i textdatafilen avslutades korrekt med newline när vi använde kommandot cat för att skapa datafilen tidigare.
Du kan kontrollera att data har importerats genom att köra följande kommando i terminalfönstret. Kom ihåg att ersätta username och <password> efter behov innan du kör kommandot.
sqlcmd -S localhost -d BcpSampleDB -U sa -P <password> -I -Q "SELECT * FROM TestEmployees;"
Detta bör visa följande resultat:
Id Name Location
----------- ------------------- -------------------
1 Jared Australia
2 Nikita India
3 Tom Germany
Exportera data med bcp
I den här handledningen använder du bcp för att exportera data från den exempeltabell vi skapade tidigare, till en ny datafil.
Kopiera och klistra in följande kommandon i terminalfönstret. Dessa kommandon använder kommandoradsverktyget bcp för att exportera data från tabellen TestEmployees i databasen BcpSampleDB till en ny datafil med namnet ~/test_export.txt. Kom ihåg att ersätta användarnamnet och <password> efter behov innan du kör kommandot.
bcp TestEmployees out ~/test_export.txt -S localhost -U sa -P <password> -d BcpSampleDB -c -t ','
Du kan kontrollera att data exporterades korrekt genom att köra följande kommando i terminalfönstret:
cat ~/test_export.txt
Detta bör visa följande i terminalfönstret:
1,Jared,Australia
2,Nikita,India
3,Tom,Germany