Copia bulk di dati con bcp per SQL Server in LinuxBulk copy data with bcp to SQL Server on Linux

In questo argomento viene illustrato come utilizzare il bcp utilità della riga di comando di copia bulk dei dati tra un'istanza di SQL Server 2017 RC2 in Linux e un file di dati in un formato specificato dall'utente.This topic shows how to use the bcp command line utility to bulk copy data between an instance of SQL Server 2017 RC2 on Linux and a data file in a user-specified format.

È possibile utilizzare bcp per importare un numero elevato di righe in tabelle SQL Server oppure per esportare dati dalle tabelle di SQL Server nei file di dati.You can use bcp to import large numbers of rows into SQL Server tables or to export data from SQL Server tables into data files. Tranne quando è usato con l'opzione queryout, bcp non richiede alcuna conoscenza di Transact-SQL.Except when used with the queryout option, bcp requires no knowledge of Transact-SQL. Il bcp utilità della riga di comando funziona con Microsoft SQL Server in esecuzione in locale o nel cloud, Linux, Windows o Docker e Database SQL di Azure e Azure SQL Data Warehouse.The bcp command line utility works with Microsoft SQL Server running on-premises or in the cloud, on Linux, Windows or Docker and Azure SQL Database and Azure SQL Data Warehouse.

In questo argomento viene illustrato come in:This topic will show you how to:

  • Importare dati in una tabella con il bcp in comandoImport data into a table using the bcp in command
  • Esportare i dati da una tabella di abbonamento di bcp out comandoExport data from a table uisng the bcp out command

Installare gli strumenti da riga di comando di SQL ServerInstall the SQL Server command-line tools

bcpfa parte di strumenti della riga di comando di SQL Server, che non vengono installati automaticamente con SQL Server in Linux.bcp is part of the SQL Server command-line tools, which are not installed automatically with SQL Server on Linux. Se non è già installato gli strumenti da riga di comando di SQL Server nel computer Linux, è necessario installarli.If you have not already installed the SQL Server command-line tools on your Linux machine, you must install them. Per ulteriori informazioni su come installare gli strumenti, selezionare la distribuzione di Linux dall'elenco seguente:For more information on how to install the tools, select your Linux distribution from the following list:

Importare i dati con bcpImport data with bcp

In questa esercitazione si creerà un database di esempio e una tabella nell'istanza locale di SQL Server (localhost) e quindi utilizzare bcp per caricare nella tabella di esempio da un file di testo su disco.In this tutorial, you will create a sample database and table on the local SQL Server instance (localhost) and then use bcp to load into the sample table from a text file on disk.

Creare un database di esempio e una tabellaCreate a sample database and table

Iniziamo creando un database di esempio con una semplice tabella che verrà utilizzata nel resto di questa esercitazione.Let's start by creating a sample database with a simple table that will be used in the rest of this tutorial.

  1. Nella casella di Linux, aprire un terminale di comando.On your Linux box, open a command terminal.

  2. Copiare e incollare i comandi nella finestra terminal.Copy and paste the commands below into the terminal window. Questi comandi usano il sqlcmd utilità della riga di comando per creare un database di esempio (BcpSampleDB) e una tabella (TestEmployees) nell'istanza locale di SQL Server (localhost).These commands use the sqlcmd command line utility to create a sample database (BcpSampleDB) and a table (TestEmployees) on the local SQL Server instance (localhost). Ricordarsi di sostituire il username e <your_password> necessarie prima di eseguire i comandi.Remember to replace the username and <your_password> as necessary before running the commands.

Creare il database BcpSampleDB:Create the database BcpSampleDB:

sqlcmd -S localhost -U sa -P <your_password> -Q "CREATE DATABASE BcpSampleDB;"

Creare la tabella TestEmployees nel database BcpSampleDB:Create the table TestEmployees in the database BcpSampleDB:

sqlcmd -S localhost -U sa -P <your_password> -d BcpSampleDB -Q "CREATE TABLE TestEmployees (Id INT IDENTITY(1,1) NOT NULL PRIMARY KEY, Name NVARCHAR(50), Location NVARCHAR(50));"

Creare il file di dati di origineCreate the source data file

Copiare e incollare il comando seguente nella finestra del terminale.Copy and paste the command below in your terminal window. Verrà utilizzato l'elemento predefinito cat comando per creare un file di dati di testo di esempio con 3 record salvare il file nella directory principale come ~/test_data.txt.We will use the built-in cat command to create a sample text data file with 3 records save the file in your home directory as ~/test_data.txt. I campi nei record sono delimitati da una virgola.The fields in the records are delimited by a comma.

cat > ~/test_data.txt << EOF
1,Jared,Australia
2,Nikita,India
3,Tom,Germany
EOF

È possibile verificare che il file di dati è stato creato correttamente eseguendo il comando seguente nella finestra terminal:You can verify that the data file was created correctly by running the command below in your terminal window:

cat ~/test_data.txt

Nella finestra terminal verrà visualizzato quanto segue:This should display the following in your terminal window:

1,Jared,Australia
2,Nikita,India
3,Tom,Germany

Importare i dati dal file di dati di origineImport data from the source data file

Copiare e incollare i comandi nella finestra terminal.Copy and paste the commands below into the terminal window. Questo comando Usa bcp per connettersi all'istanza locale di SQL Server (localhost) e importare i dati dal file di dati (~/test_data.txt) nella tabella (TestEmployees) nel database (BcpSampleDB).This command uses bcp to connect to the local SQL Server instance (localhost) and import the data from the data file (~/test_data.txt) into the table (TestEmployees) in the database (BcpSampleDB). Ricordarsi di sostituire il nome utente e <your_password> necessarie prima di eseguire i comandi.Remember to replace the username and <your_password> as necessary before running the commands.

bcp TestEmployees in ~/test_data.txt -S localhost -U sa -P <your_password> -d BcpSampleDB -c -t  ','

Ecco una breve panoramica dei parametri della riga di comando è utilizzati con bcp in questo esempio:Here's a brief overview of the command line parameters we used with bcp in this example:

  • -S: specifica l'istanza di SQL Server a cui connettersi-S: specifies the instance of SQL Server to which to connect
  • -U: specifica l'ID di accesso utilizzato per connettersi a SQL Server-U: specifies the login ID used to connect to SQL Server
  • -P: specifica la password per l'ID di accesso-P: specifies the password for the login ID
  • -d: Specifica il database a cui connettersi-d: specifies the database to connect to
  • -c: consente di eseguire operazioni utilizzando un tipo di dati carattere-c: performs operations using a character data type
  • -t: Specifica il carattere di terminazione del campo.-t: specifies the field terminator. Si sta usando comma come carattere di terminazione di campo per i record nel file di datiWe are using comma as the field terminator for the records in our data file
Nota

In questo esempio, è non stiamo specificando un terminatore di riga personalizzato.We are not specifying a custom row terminator in this example. Le righe nel file di dati di testo sono state terminate correttamente con newline quando è stato usato il cat comando per creare il file di dati in precedenza.Rows in the text data file were correctly terminated with newline when we used the cat command to create the data file earlier.

È possibile verificare che i dati sono stati importati correttamente eseguendo il comando seguente nella finestra del terminale.You can verify that the data was successfully imported by running the command below in your terminal window. Ricordarsi di sostituire il username e <your_password> necessarie prima di eseguire il comando.Remember to replace the username and <your_password> as necessary before running the command.

sqlcmd -S localhost -d BcpSampleDB -U sa -P <your_password> -I -Q "SELECT * FROM TestEmployees;"

Verrà visualizzato i risultati seguenti:This should display the following results:

Id          Name                Location
----------- ------------------- -------------------
          1 Jared               Australia
          2 Nikita              India
          3 Tom                 Germany

(3 rows affected)

Esportare i dati con bcpExport data with bcp

In questa esercitazione si utilizzerà bcp per esportare i dati dalla tabella di esempio creato in precedenza in un nuovo file di dati.In this tutorial, you will use bcp to export data from the sample table we created earlier to a new data file.

Copiare e incollare i comandi nella finestra terminal.Copy and paste the commands below into the terminal window. Questi comandi usano il bcp utilità della riga di comando per esportare i dati dalla tabella TestEmployees nei nel database BcpSampleDB in un nuovo file di dati denominato ~/test_export.txt.These commands use the bcp command line utility to export data from the table TestEmployees in the in the database BcpSampleDB to a new data file called ~/test_export.txt. Ricordarsi di sostituire il nome utente e <your_password> necessarie prima di eseguire il comando.Remember to replace the username and <your_password> as necessary before running the command.

bcp TestEmployees out ~/test_export.txt -S localhost -U sa -P <your_password> -d BcpSampleDB -c -t ','

È possibile verificare che i dati è stati esportati correttamente eseguendo il comando seguente nella finestra terminal:You can verify that the data was exported correctly by running the command below in your terminal window:

cat ~/test_export.txt

Nella finestra terminal verrà visualizzato quanto segue:This should display the following in your terminal window:

1,Jared,Australia
2,Nikita,India
3,Tom,Germany

Vedere ancheSee also