Deletar linhas de uma planilha xls - usando t-sql ou cmdshell

31/03/2016

Prezados, boa tarde!

Criei uma rotina para receber relatórios diários de todas as bases de dados, essa rotina depois de executada envia por email um arquivo xls com todas as informações.

O problema é que eu não consigo subscrever as linhas ou apagar ou até mesmo criar um novo arquivo, isso tudo será feito por um JOB.

Felipe Cunha

Melhor resposta

31/03/2016

Você pode executar a geração do arquivo XLS através do bcp + xp_cmdshell, ele irá sempre sobrescrever o arquivo, a não ser que alguém esteja com o arquivo aberto (voce tambem não iria conseguir deletar).
Pesquise sobre e retorne caso não tenha conseguido solucionar o problema.

Fabiano Carvalho

Responder Citar

Outras Respostas

31/03/2016

Marcos P

Felipe,

Seu post é confuso...

Pelo que entendi você tem uma rotina que gera, a partir de consultas no banco, um XLS.

O problema ocorre no momento de gerar o arquivo, pois você já dispõem de um gravado no diretório de destino e não consegue eliminá-lo para gerar o novo. É isso ?

Aparece alguma mensagem de erro ?

Você está tentando gerar o XLS via programa ou exportando diretamente do Banco ?

Qual método / comando utilizado para gerar o XLS ?

Qual a versão do Sql Server ?
Responder Citar

31/03/2016

Felipe Cunha

O que ocorre.

O arquivo eu já tenho ele pronto, não descobri ainda como criar um xls via t-sql ou cmdshell.

O job ja esta funcionando, o problema é que insiro informações nesse arquivo, porém todos os dias faço um insert no mesmo arquivo e as informações de ontem continuam lá. Quero apagar as informações já existentes e ficar apenas com as novas informações. Qualquer maneira ajudaria, sendo apagando as linhas ou deletando o antigo e criando um novo.

Tenho varias versões, desde 2014,2008, 2012
Responder Citar

31/03/2016

Marcos P

Como você já tem o arquivo pronto se ainda não descobriu o modo de gerar o XLS do lado do Sql Server ?

Você tem ele, nativo do Excel... é isso ?

Se sua dúvida é saber como exportar para XLS utilizando uma instrução T-SQL, existe bastante material na rede sobre isso...

Resolvida essa parte, você vai precisar implementar um batch qualquer, que delete o arquivo anterior e gere o novo arquivo.
Responder Citar

31/03/2016

Felipe Cunha

Como você já tem o arquivo pronto se ainda não descobriu o modo de gerar o XLS do lado do Sql Server ? Você tem ele, nativo do Excel... é isso ? Se sua dúvida é saber como exportar para XLS utilizando uma instrução T-SQL, existe bastante material na rede sobre isso... Resolvida essa parte, você vai precisar implementar um batch qualquer, que delete o arquivo anterior e gere o novo arquivo.



Bom, vamos lá.

Hoje eu tenho o arquivo e insiro as linhas nele, se amanhã eu inserir novamente as linhas de ontem ainda estarão lá, certo?

Temos duas opções:

1º Deleto as linhas de ontem, gostaria de saber se tem como fazer isso.

2º Toda vez que eu for gerar o relatório eu gero um novo arquivo, também gostaria de saber se isso é possível.
Responder Citar

31/03/2016

Felipe Cunha

Você pode executar a geração do arquivo XLS através do bcp + xp_cmdshell, ele irá sempre sobrescrever o arquivo, a não ser que alguém esteja com o arquivo aberto (voce tambem não iria conseguir deletar). Pesquise sobre e retorne caso não tenha conseguido solucionar o problema.


Vou tentar e aviso.
Responder Citar