Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: SQL Server no Linux
Este artigo mostra como usar o utilitário bcp para copiar dados em massa entre uma instância do SQL Server no Linux e um arquivo de dados em um formato especificado pelo usuário.
Você pode usar bcp para importar um grande número de linhas para tabelas de SQL Server ou exportar dados de tabelas SQL Server para arquivos de dados. Exceto quando usado com a opção de consulta, bcp não requer nenhum conhecimento de Transact-SQL. A bcp utilidade de linha de comando funciona com SQL Server rodando on-premises ou na nuvem no Linux, Windows ou Docker, e com Banco de Dados SQL do Azure e Azure Synapse Analytics.
Este artigo mostra como:
- importar dados para uma tabela usando o comando
bcp in - exportar dados de uma tabela usando o comando
bcp out
instalar as ferramentas de linha de comando SQL Server
bcp faz parte das ferramentas de linha de comando SQL Server, que não são instaladas automaticamente com SQL Server em Linux. Se ainda não tiver instalado as ferramentas de linha de comando do SQL Server em seu computador Linux, você precisa instalá-las. Para obter mais informações sobre como instalar as ferramentas, selecione sua distribuição do Linux na lista a seguir:
Importar dados usando o bcp
Neste tutorial, você cria um banco de dados de exemplo e uma tabela na instância de SQL Server local (localhost) e, em seguida, usa bcp para carregar na tabela de exemplo de um arquivo de texto em disco.
Criar uma tabela e um banco de dados de exemplo
Comece criando um banco de dados de exemplo com uma tabela simples que é usada no restante deste tutorial.
Na caixa do Linux, abra um terminal de comando.
Copie e cole os comandos a seguir na janela do terminal. Esses comandos usam o utilitário sqlcmd para criar um banco de dados de exemplo (
BcpSampleDB) e uma tabela (TestEmployees) na instância local do SQL Server (localhost). Lembre-se de substituirsae<password>quando necessário antes de executar os comandos.
Sua senha deve seguir a política de senha padrão do SQL Server. Por padrão, a senha precisa ter pelo menos oito caracteres e conter caracteres de três dos seguintes quatro conjuntos: letras maiúsculas, letras minúsculas, dígitos de base 10 e símbolos. As senhas podem ter até 128 caracteres. Use senhas que sejam tão longas e complexas quanto possível.
Crie o banco de dados BcpSampleDB:
sqlcmd -S localhost -U sa -P <password> -Q "CREATE DATABASE BcpSampleDB;"
Crie a tabela TestEmployees no banco de dados 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));"
Criar o arquivo de dados de origem
Copie e cole os comandos a seguir na janela do terminal. O comando embutido cat cria um arquivo de dados de texto de exemplo com três registros e salva o arquivo no seu diretório inicial como ~/test_data.txt. Os campos nos registros são delimitados por uma vírgula.
cat > ~/test_data.txt << EOF
1,Jared,Australia
2,Nikita,India
3,Tom,Germany
EOF
Executando o seguinte comando na janela do terminal, você pode verificar se o arquivo de dados foi criado corretamente:
cat ~/test_data.txt
Isso deve exibir o seguinte na janela do terminal:
1,Jared,Australia
2,Nikita,India
3,Tom,Germany
Importar dados do arquivo de dados de origem
Copie e cole o comando a seguir na janela do terminal. Esse comando usa bcp para se conectar à instância de SQL Server local (localhost) e importar os dados do arquivo de dados (~/test_data.txt) para a tabela (TestEmployees) no banco de dados (BcpSampleDB). Lembre-se de substituir sa e <password> quando necessário antes de executar o comando.
bcp TestEmployees in ~/test_data.txt -S localhost -U sa -P <password> -d BcpSampleDB -c -t ','
Aqui está uma breve visão geral dos parâmetros de linha de comando que usamos com o bcp neste exemplo:
-
-S: especifica a instância do SQL Server à qual você deseja se conectar -
-U: especifica a ID de logon usada para conectar-se ao SQL Server -
-P: especifica a senha para a ID de logon -
-d: especifica o banco de dados ao qual se conectar -
-c: executa operações usando um tipo de dados de caractere -
-t: especifica o terminador de campo. Este exemplo usa uma vírgula como terminador de campo para os registros no arquivo de dados
Note
Não estamos especificando um terminador de linha personalizado neste exemplo. As linhas no arquivo de dados de texto foram finalizadas corretamente com newline quando usamos o comando cat para criar o arquivo de dados anteriormente.
Executando o seguinte comando na janela do terminal, você pode verificar se os dados foram importados com êxito. Lembre-se de substituir sa e <password> quando necessário antes de executar o comando.
sqlcmd -S localhost -d BcpSampleDB -U sa -P <password> -I -Q "SELECT * FROM TestEmployees;"
Isso deve exibir os seguintes resultados:
Id Name Location
----------- ------------------- -------------------
1 Jared Australia
2 Nikita India
3 Tom Germany
Exportar dados com o bcp
Neste tutorial, você usará bcp para exportar dados da tabela de exemplo que criamos anteriormente para um novo arquivo de dados.
Copie e cole o comando a seguir na janela do terminal. Esse comando usa a bcp ferramenta de linha de comando para exportar dados da tabela TestEmployees no banco de dados BcpSampleDB para um novo arquivo de dados chamado ~/test_export.txt. Lembre-se de substituir sa e <password> quando necessário antes de executar o comando.
bcp TestEmployees out ~/test_export.txt -S localhost -U sa -P <password> -d BcpSampleDB -c -t ','
Executando o seguinte comando na janela do terminal, você pode verificar se os dados foram exportados corretamente:
cat ~/test_export.txt
Isso deve exibir o seguinte na janela do terminal:
1,Jared,Australia
2,Nikita,India
3,Tom,Germany