Voltar para a lista de artigos Artigos
8 minutos de leitura

Como exportar um arquivo CSV a partir de uma consulta T-SQL

Conhecer consultas SQL para selecionar dados de bancos de dados permite que você obtenha informações facilmente. Entretanto, há muitas situações em que precisamos exportar dados para outra plataforma ou aplicação. O arquivo CSV é uma solução para este problema.

Se você gostaria de dominar o SQL completo, experimente nosso SQL de A a Z pista. Ele contém 7 cursos SQL práticos que o levarão de um iniciante a um usuário SQL avançado. Inscreva-se agora de graça!

Neste artigo, você descobrirá o que é um arquivo CSV e por que você gostaria de usá-lo. Você também aprenderá 5 métodos para exportar dados para um arquivo CSV a partir de um banco de dados SQL Server. Vamos começar!

O que é um arquivo CSV e por que ele é usado?

Você provavelmente está se perguntando por que você gostaria de exportar dados para um arquivo CSV. Primeiro, o arquivo CSV (.csv) é um formato de dados muito popular, aceito por muitas aplicações como Excel, Calc, várias IDEs, e servidores de banco de dados. Além disso, tem uma estrutura muito simples, pois as características são valores em linhas separadas por vírgulas.

A primeira linha muitas vezes contém o cabeçalho da linha. Veja o seguinte arquivo de exemplo:

Exportação SQL para o comando CSV

Como você pode ver, a primeira linha contém o cabeçalho com os nomes das colunas: id, first_name, e last_name. As linhas que seguem contêm valores correspondentes aos cabeçalhos das colunas, separados por vírgulas.

A popularidade e a ampla aceitação deste formato permitem o intercâmbio de dados entre diferentes plataformas e aplicações. É possível exportar dados de um banco de dados e importá-los para outro software como o Excel.

Esta independência também permite a movimentação de dados entre diferentes sistemas operacionais como Windows e Linux. Muitos programas têm a opção de exportar e importar arquivos de/para CSV por este motivo. Empresas que trabalham com dados em diferentes plataformas podem operar com os mesmos dados e mover dados usando o formato CSV para importar e exportar.

O formato CSV também oferece uma maneira fácil de entender os dados, pois é legível para humanos. O conteúdo do arquivo CSV pode ser visto como uma planilha de cálculo em Excel ou Calc.

Os dados de exemplo para exportação

Digamos que temos este produto de uma tabela no banco de dados do SQL Server:

idnamecategory
1keyboardelectronics
2brickstoys
3lampelectronics
4wood cartoys
5balltoys

Como você sabe, podemos obter todas as linhas desta tabela usando uma simples consulta SQL:

SELECT * FROM product;

Quando a executamos, todos os dados são exibidos na janela de saída SQL. Mas e se quisermos ver os mesmos dados em outras aplicações como o Excel? Continue lendo para descobrir vários métodos para exportar dados de uma tabela para um arquivo CSV.

Os métodos de exportação de dados SQL de uma tabela para um arquivo CSV

Agora, veremos como exportar dados de uma consulta contra um servidor SQL para um arquivo CSV. Há vários métodos diferentes para fazer isso.

Método 1: Usando o SQL Server Management Studio

Este método utiliza a ferramenta SSMS-GUI projetada para gerenciar objetos e dados no SQL Server.

Primeiro, execute o SSMS. No sistema operacional Windows, vá para "Start", expanda as "Ferramentas Microsoft SQL Server", e selecione "Management Studio".

Exportação SQL para o comando CSV

Na próxima etapa, expanda o nó Banco de Dados e clique com o botão direito do mouse sobre seu banco de dados que contém a tabela product (nosso banco de dados é store). No menu, escolha "Tarefas" e depois "Exportar dados".

Exportação SQL para o comando CSV

O Assistente de Importação e Exportação será exibido:

Exportação SQL para o comando CSV

Clique no botão "Next" (Avançar). Na lista "Opções de dados", escolha "SQL Server Native Client":

Exportação SQL para o comando CSV

Preencha outros campos como o nome do servidor, login e senha para o servidor e escolha o banco de dados que armazena a tabela que você gostaria de exportar (nossa tabela product está no database loja):

Exportação SQL para o comando CSV

Vá para o próximo passo clicando no botão "Next" (Próximo).

Agora, escolha o formato do arquivo de destino. Para um arquivo CSV, escolha "Flat File" (Arquivo Plano). Preencha os campos com o nome do arquivo, o local e a página de código. Marque as caixas de seleção "Unicode" e "Column names":

Exportação SQL para o comando CSV

No próximo passo, selecione a opção de transferir todos os dados da tabela ou escreva uma consulta SQL para fazer isso. Ir com a primeira opção se parece com isto:

Exportação SQL para o comando CSV

Selecione a tabela product da lista de mesas:

Exportação SQL para o comando CSV

No próximo passo, clique no botão "Next" (Próximo).

Exportação SQL para o comando CSV

E clique no botão "Finish" (Concluir) no último passo:

Exportação SQL para o comando CSV

Você vê as informações sobre os sucessos e erros:

Exportação SQL para o comando CSV

Feche a janela do assistente e vá para o arquivo com os dados do produto da tabela. Você pode encontrá-lo nos catálogos na pasta do usuário do sistema operacional Windows.

Método 2: Operando em um conjunto de resultados em SSMS - Dados sem nomes de colunas

Outro método que utiliza o SSMS para exportar dados para um arquivo CSV é baseado nas linhas de um conjunto de resultados.

Na janela do Object Explorer, expandir o nó Banco de Dados e selecionar o banco de dados que contém nosso produto de tabela. Em seguida, clique no botão "Nova Consulta" para abrir o editor para escrever consultas SQL. Selecione todos os dados da tabela product:

SELECT * FROM product;
Exportação SQL para o comando CSV

Agora, clique no botão "Executar" para executar a consulta. No conjunto de resultados, você vê todos os dados da tabela.

Na próxima etapa, clique com o botão direito do mouse nas linhas de dados do conjunto de resultados e escolha "Salvar resultado como" no menu.

Exportação SQL para o comando CSV

Na janela Arquivo, selecione a pasta de destino de seu arquivo CSV, digite o nome do arquivo no campo Nome do arquivo - "product-store", por exemplo - e clique em OK. Este arquivo contém seus dados, mas sem os nomes das colunas.

Método 3: Operando em um conjunto de resultados em SSMS - Dados com cabeçalho

Este método é similar ao método anterior. Ele também é baseado no SSMS e no conjunto de resultados, mas as diferenças estão nas escolhas que você faz a partir do menu.

Primeiro, clique com o botão direito sobre o conjunto de resultados e escolha "Selecionar tudo" no menu.

Exportação SQL para o comando CSV

Ele selecionará todas as filas.

Exportação SQL para o comando CSV

Clique com o botão direito do mouse nas linhas selecionadas e escolha "Copiar com Cabeçalhos" no menu. Vá para um arquivo CSV vazio e simplesmente cole o conteúdo.

Método 4: Usando o SQLCMD Utility

O SQLCMD é uma ferramenta que permite utilizar um terminal em um sistema operacional como o Windows para executar instruções ou scripts SQL. Podemos usá-lo para exportar dados para um arquivo CSV.

Primeiro, abra cmd em seu sistema operacional e escreva o seguinte comando:

sqlcmd -S DESKTOP-INGEKE8\MSSQLSERVER,1433
-Q "select * from store.dbo.product"
–s "," –o "C:\Users\dora\Documents\products_list.csv" -E

Execute-o pressionando "Enter".

Deixe-me explicar isto com mais detalhes.

A primeira palavra é o nome da ferramenta, sqlcmd. A seguir estão as opções (letras específicas, cada uma precedida por um traço) necessárias para exportar dados de uma consulta SQL para um arquivo CSV.

A primeira opção é -S, seguida pelo nome do servidor, uma barra invertida, o nome da instância do SQL Server, uma vírgula, e o número da porta para a conexão. No meu caso, o SQL Server está em uma máquina chamada DESKTOP-INGEKE8, e a instância é MSSQLSERVER. Note que a porta padrão é 1433.

A segunda opção é -Q. Em seguida, uma declaração em SELECT para obter os dados da tabela. Coloque a declaração SELECT entre aspas. Em nosso exemplo, loja . é o banco de dados, dbo é o esquema padrão, e product é o nome da tabela.

A terceira opção é -s seguida por uma vírgula entre aspas. Isto especifica a vírgula como o separador entre as colunas no arquivo CSV.

A quarta opção é -o para especificar o caminho e o nome do arquivo de saída. Coloque o caminho e o nome do arquivo entre aspas.

E a última opção é -E. Isto indica que é uma conexão confiável com o servidor do banco de dados.

Exportação SQL para o comando CSV

O resultado é um arquivo CSV (products_list.csv) contendo os dados da tabela product do banco de dados store no caminho que você especificar.

bcp store.dbo.product out C:\Users\dora\Desktop\product-data.csv -S DESKTOP-INGEKE8\SQLEXPRESS -c -t"," -T
bcp "SELECT * from product WITH (NOLOCK)" queryout c:\product-store.csv -c -T

Método 5: Usando a ferramenta BCP

O uso da ferramenta BCP é similar ao método anterior. O BCP é um programa de linha de comando que copia dados de/para uma instância SQL e de/para um arquivo de dados, usando um formato de arquivo especificado. Você pode usar esta ferramenta no terminal de seu sistema operacional.

Abra cmd no sistema operacional Windows e execute o seguinte:

bcp store.dbo.product out C:\Users\dora\Desktop\product-data.csv
-S DESKTOP-INGEKE8\MSSQLSERVER,1433 -c -t"," -T

A primeira palavra é bcp, seguida pelos nomes do banco de dados, o esquema e a tabela, separados pelo período. Em seguida, o comando out especifica o caminho para o arquivo de resultados. No meu caso, é C:\Users\dora\Desktop\product-data.csv.

A seguir é a opção -S, seguida pelo nome do servidor, uma barra invertida, o nome da instância do SQL Server, uma vírgula, e o número da porta para a conexão. No meu caso, o SQL Server está em uma máquina chamada DESKTOP-INGEKE8, e a instância é MSSQLSERVER. Note que a porta padrão é 1433.

A opção -t (em minúsculas) define o separador entre aspas. Aqui, o separador é a vírgula.

A opção -T (em maiúsculas) representa a autenticação do Trusted Windows.

Quando você executa isto, você vê algo como o abaixo para que você saiba o status de cópia de seus dados:

Exportação SQL para o comando CSV

Vamos exportar uma tabela SQL para um arquivo CSV!

Neste artigo, você aprendeu o que é um arquivo CSV, como este formato é construído e porque ele é usado em aplicações ou plataformas. Você também viu vários métodos para exportar dados de uma tabela em um banco de dados do Microsoft SQL Server para um arquivo CSV.

Você pode estar interessado em ler sobre como exportar para um arquivo CSV de um banco de dados PostgreSQL no artigo "Como Importar CSVs para o PostgreSQL Usando PgAdmin". Ou saiba mais sobre o SQL Server com cursos em nossa plataforma LearnSQL.com.br.