Exportar tabela temporaria de uma Procedure
-
segunda-feira, 5 de março de 2012 17:57
Tenho uma Procedure que faz N loops, para exportaçao de toda ficha financeira dos colaboradores que possuo na empresa, desde 1991, ou seja, um grande loop, onde gravo cada final de loop em uma tabela temporaria, onde o que eu preciso é que para cada periodo que é o primeiro e principal laço dos loops que no final apos gravar na tabela temporaria, que fosse exportado isso tudo para um arquivo txt.
hoje para apresentar essas informaçoes simplesmente no final dou um select * from #tmp;
Se alguem souber como faço para exportar esse select
Obrigado
- Editado Josivan Laskoski segunda-feira, 5 de março de 2012 18:07
Todas as Respostas
-
segunda-feira, 5 de março de 2012 18:42Moderador
Josivan
este artigo deve ajudar
http://msdn.microsoft.com/pt-br/library/ms191503.aspx
Att.
Marcelo Fernandes
MCP, MCDBA, MCSA, MCTS.
Se útil, classifique!!!
Me siga no twitter: @marcelodba- Marcado como Resposta Eder CostaModerator quinta-feira, 8 de março de 2012 13:59
-
segunda-feira, 5 de março de 2012 19:05
Marcelo,
Vi o exemplo e fiz conforme estava, porém duas situações:
Usando o USE tempdb; me informa esse erro:
Uma instrução de banco de dados USE não é permitido em um procedimento, uma função ou um gatilhotirando o
USE tempdb; GO --resto do sql GO
e deixando somente:
BULK INSERT #tmp_campos FROM 'C:\PersonalData.Dat' WITH ( DATAFILETYPE = 'char', FIELDTERMINATOR = ',', KEEPNULLS );
expressa esse erro:
Não é possível carregar em massa. O arquivo "C:\PersonalData.Dat" não existe.
Sendo que crio .Dat ou .Txt no C:\ antes de executar a procedure e mesmo assim acontece esse erro.
Alguma alternativa ou algo que fiz errado?
Abraços e Obrigado!
-
terça-feira, 6 de março de 2012 11:46
Josivan,
Minha sugestão seria utilizar o comando bcp para realizar esta exportação!
Além disso, os exemplos que o Marcelo sugeriu mostram como você pode realizar este tipo de procedimento de forma direta, mas acredito que você esta montando uma nova estrutura de acordo com suas necessidades.
Em relação ao comando Use realmente ele não pode ser utilizando dentro de uma Stored Procedure, Function ou Trigger, pois são objetos pertencentes a um contexto de banco de dados.
Outra possibilidade muito similar ao comando BCP seria utilizar o comando SQLCMD.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | SorBR.Net | Professor Universitário | MSIT.com]
- Marcado como Resposta Eder CostaModerator quinta-feira, 8 de março de 2012 13:59

