none
Salvar Resultado em arquivo RRS feed

  • Pergunta

  • Boa tarde,

    Gostaria de uma ajuda sobre um problema simples.

    Eu necessito fazer uma consulta via sql management studio e que o resultado, ao invés de em tela, seja salvo em um arquivo.

    O arquivo a ser salvo ficará assim:  c:\resultado.csv

    O script é:  select * from funcionarios

    Eu gostaria de saber como executar via linha de comando no sql management studio.

    seria algo como:

    select

    *

    INTO c:\resultado.csv

    from funcionarios

    Desde já agradeço a ajuda dos amigos.

    terça-feira, 12 de julho de 2016 16:53

Respostas

  • DECLARE @COMANDO NVARCHAR(4000) = ''

    SET @COMANDO = 'sqlcmd -S . -d [NOME DO SEU BANCO DE DADOS] -E -s[SEU SEPARADOR DE CAMPO] -W -Q "SUA QUERY" > c:\TEMP\resultado.tmp'
    EXEC master..xp_cmdshell @COMANDO

    SET @COMANDO = 'type C:\TEMP\resultado.tmp | findstr /V \---\;\--- | C:\TEMP\replace-null.exe > c:\TEMP\resultado_OK.tmp'
    SET @COMANDO = 'EXEC xp_cmdshell'''+ @COMANDO +''''

    SET @COMANDO = 'copy C:\TEMP\resultado.tmp C:\resultado.csv'
    EXEC master..xp_cmdshell @COMANDO

    SET @COMANDO = 'del C:\TEMP\resultado*.tmp'
    EXEC master..xp_cmdshell @COMANDO


    VOCÊ PODE CARREGAR O replace-null.exe em: replace-null.exe
    terça-feira, 12 de julho de 2016 20:17
  • Bom dia Daniel Iniciante SQL,

    Espero poder ajuda-lo de alguma forma.

    Por gentileza, tente adaptar o seguinte exemplo:

    SELECT * FROM funcionários;
    OUTPUT TO 'c:\resultado.csv'
        FORMAT TEXT
        QUOTE '"'
        WITH COLUMN NAMES;
        

    Atenciosamente,

    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quarta-feira, 20 de julho de 2016 14:33

Todas as Respostas

  • Boa tarde Daniel.

    No Management stdudio ja tem essa opção,

    Voce pode usar o Ctrl+Shift+F e rodar a query, ou a opção abaixo:

    Depois que rodar a query vai abrir o explorer pedindo o local onde quer salvar o resultado.

    Att

    Reginaldo c Silva

    terça-feira, 12 de julho de 2016 17:48
  • Boa tarde Reginaldo,

    Muito obrigado pela presteza.

    Na verdade, necessito realizar a extração via linha de comando pois em um segundo momento criarei um job com esta finalidade.

    Desde já agradeço,

    terça-feira, 12 de julho de 2016 18:55
  • DECLARE @COMANDO NVARCHAR(4000) = ''

    SET @COMANDO = 'sqlcmd -S . -d [NOME DO SEU BANCO DE DADOS] -E -s[SEU SEPARADOR DE CAMPO] -W -Q "SUA QUERY" > c:\TEMP\resultado.tmp'
    EXEC master..xp_cmdshell @COMANDO

    SET @COMANDO = 'type C:\TEMP\resultado.tmp | findstr /V \---\;\--- | C:\TEMP\replace-null.exe > c:\TEMP\resultado_OK.tmp'
    SET @COMANDO = 'EXEC xp_cmdshell'''+ @COMANDO +''''

    SET @COMANDO = 'copy C:\TEMP\resultado.tmp C:\resultado.csv'
    EXEC master..xp_cmdshell @COMANDO

    SET @COMANDO = 'del C:\TEMP\resultado*.tmp'
    EXEC master..xp_cmdshell @COMANDO


    VOCÊ PODE CARREGAR O replace-null.exe em: replace-null.exe
    terça-feira, 12 de julho de 2016 20:17
  • Boa tarde!

    Utilizei esta opção e quase está com eu preciso.

    O que falta é que o resultado teria que ser separado por ; (ponto e virgula) ou algum outro separador e sem o cabeçalho. Com esta opção esta exportando, mas está saindo sem formatação.

    Mais uma vez agradeço a atenção.

    Attm

    quarta-feira, 13 de julho de 2016 17:46
  • Bom dia Daniel Iniciante SQL,

    Espero poder ajuda-lo de alguma forma.

    Por gentileza, tente adaptar o seguinte exemplo:

    SELECT * FROM funcionários;
    OUTPUT TO 'c:\resultado.csv'
        FORMAT TEXT
        QUOTE '"'
        WITH COLUMN NAMES;
        

    Atenciosamente,

    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    quarta-feira, 20 de julho de 2016 14:33
  • Bom dia,

    Devido a falta de resposta do usuário

    essa thread está sendo fechada.

    Se o problema ainda estiver ocorrendo,

    favor abrir uma nova thread.

    Atenciosamente,


    Robson William Silva

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    sexta-feira, 22 de julho de 2016 13:11