blackcore Postado Setembro 28, 2009 Denunciar Share Postado Setembro 28, 2009 Boa Noite.Tenho no meu servidor um arquivo 'Teste.csv', no meu SQL SERVER eu já tenho a 'TabelaTeste' para receber esses arquivos.Porem eu precisava realizar essa importação num horário em que a rede estive sem uso. Para isso eu precisaria agendar uma tarefa.Gostaria de saber ser é possível através do agendador do windows eu executar um script para importar dados de um arquivo .csv.== SCRIPT =====================================================BULK INSERT TabelaTesteFROM 'd:\import\Teste.csv'WITH(FIELDTERMINATOR = ';',ROWTERMINATOR = '\n')GOSELECT * FROM TabelaTeste=============================================================Outra dúvida que me ocorreu tentando realizar esse teste foi que o SQL reclama de não estar conectado em nenhuma database.Tem como eu usar algum tipo de "pré-nome", exemplo: nomedatabase.TabelaTeste ou [nomedatabase].TabelaTeste para acessar direto do script?Obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Setembro 29, 2009 Denunciar Share Postado Setembro 29, 2009 Bom dia Amigo. você pode agendar o processo no próprio Sql Sever, através de JOB´s. Qual versão do Sql você utiliza? As interfaces são um pouco diferentes, mas a estrutura será a mesma. Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 blackcore Postado Setembro 29, 2009 Autor Denunciar Share Postado Setembro 29, 2009 Opa Fulvio,Bom dia.Ainda sou iniciante quando o assunto é SQL SERVER.Temos no servidor uma versão do SQL SERVER 2005.Então eu consigo agendar para rodar esse meu script no sql server?Ele precisa de algum tipo de alteração?Obrigado! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 fulvio Postado Setembro 29, 2009 Denunciar Share Postado Setembro 29, 2009 Boa tarde Amigo. Sim, pelo Sql você consegue agendar a execução.Eu acho o Sql 2005 um pouco mais “chato” de criar estas rotinas... :.)Vou explicar pra você mais superficial, pois são muitos detalhes e o melhor seria pegar um tutorial passo a passo Mas vamos lá!! :.)Tenho duas alternativas pra você executar este processo. A primeira q vou colocar é a mais fácil, digamos assim... rs. A segunda é mais complexa, mas vale a pena você dar uma “quebrada de cabeça”, pois conhecerá mais a ferramenta e, caso se depare com uma implementação destas, não assustará!!!! rs.1ª alternativa (mais fácil):- Criar um pacote de integração de dados (SSIS). No Sql 2000, seria as famosas DTS. No 2005 não existe mais.- Criar uma tabela temporária na Base de Dados, com as informações do arquivo csv.- Executar o pacote SSIS, dando carga na tabela temporária.- Criar o Job com 1step, com um script simples de sql para carga da tabela temporária para principal.OBS.: na explicação da 2ª alternativa, eu vou informando como realizar estes passos...2ª alternativa:- Criar um pacote de integração de dados (SSIS). No Sql 2000, seria as famosas DTS. No 2005 não existe mais. - Salvar o projeto.- Publicá-lo no servidor.- Criar o Job e agendá-lo para execução. Seria interessante você fazer alguns testes pra ver o processo. Caso tenha alguma dúvida, pegar um tutorial ou postar no fórum mesmo!! :.)Criar um pacote SSIS:- Abrir o “SQL Server Business Intelligence Development Studio”.- Clicar em Arquivo, Novo, Projeto.- Escolher a opção “Integration Services Project”.- Clique na opção Toolbox (às vezes ela fica minimizada na esquerda).- Clique e arraste para a tela principal, o objeto “Data Flow Task”.- Clique duplo no objeto q acabou de arrastar, ou clique na segunda aba – “Data Flow”.- Clique na opção Toolbox novamente, e arraste os objetos “Flat File Source” e “OLE DB Destination” (esse fica lá embaixo).- Clique duplo no objeto “Flat File Source” e faça a configuração (dê uma olhada, é bem intuitivo).- Quando clicar no objeto acima, vai aparecer uma seta verde. Clique nela e arraste até o objeto “OLE DB Destination”.- Clique duplo no objeto “OLE DB Destination” e faça a configuração (configurar a vinculação entre os campos origem e destino).- Salve e está OK. :.)- você pode executar seu projeto na tela mesmo, clicando no botão “Start Debugging”. Crie um arquivo e uma tabela na Base, para fazer os testes. Caso tenha erro, vá a guia “Progress” e identifique o erro.- NESTE PONTO, caso queira gerar uma tabela temporária e inserir os dados do arquivo csv (1ª alternativa).Publicá-lo no servidor: (não precisará fazer na 1ª alternativa)- Na mesma tela q estava, vamos fazer uma configuração.- Clique em “Project”, “Integration Services Project Properties...”.- Na opção “CreateDeploymentUtility”, coloque TRUE.- Digite o caminho no campo “DeploymentOutputPath”.- Após criação, vá a pasta onde foi gravado o arquivo.- Clique duplo no objeto “Integration Services Project.SSISDeploymentManifest”.- O Wizard abrirá. Escolha a opção “SQL Server deployment” e faça as configurações.- Quando tiver concluído, você acabou de publicar seu pacote no servidor. :.)Criar o Job e agendá-lo para execução:- Abrir o “SQL Server Management Studio”.- Abrir o “Object Explorer”.- Clicar com o botão direito do mouse na opção “SQL Server Agent”. Escolher a opção New, Job.- Na primeira que aparece, configurar (atenção para o campo Owner, onde identificará qual login/usuário executará o processo).- Clicar na opção “Steps” (direita, acima). Clicar em “New...”. - No campo Type, escolher “SQL Server Integration Services Package”. (NESTE PONTO, você pode deixar na opção “Transact SQL script” e colocar seu script SQL de leitura da tabela temporária e gravação na principal, na caixa “Command” - que seria a 1ª alternativa - vá para a opção “Schedules”).- No campo Run as , escolher “SQL Agent Service Acount”.- Na opção “Package source”, escolher “SQL Server”. Configurar servidor / login.- Na ultima opção da tela, terá a opção Package. Nela você encontrará seu projeto publicado. Verificar as outras configurações. Clicar em OK.- Clicar na opção “Schedules” (direita, acima). Clicar em “New...”. Nesta tela, você fará a configuração, finalmente, dos dias / horas q o processo executará!!!- Depois de realizar as configurações e dar OK, você poderá executar o JOB manualmente, pra ver se está tudo ok (execução de testes). Clique no nome do job com o botão da direita e selecione a opção “Start Job”.É.... muita coisa mesmo. Mas se conseguir fazer um, os outros serão automáticos!!!Espero q ajude.Não deixe de pesquisar também tutoriais e exemplos com imagens do processo.Qualquer dúvida, estamos ai!! Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 blackcore Postado Setembro 30, 2009 Autor Denunciar Share Postado Setembro 30, 2009 Valeu ai...Vou testar e volto a comentar.Abraço! Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
blackcore
Boa Noite.
Tenho no meu servidor um arquivo 'Teste.csv', no meu SQL SERVER eu já tenho a 'TabelaTeste' para receber esses arquivos.
Porem eu precisava realizar essa importação num horário em que a rede estive sem uso. Para isso eu precisaria agendar uma tarefa.
Gostaria de saber ser é possível através do agendador do windows eu executar um script para importar dados de um arquivo .csv.
== SCRIPT =====================================================
BULK INSERT TabelaTeste
FROM 'd:\import\Teste.csv'
WITH
(
FIELDTERMINATOR = ';',
ROWTERMINATOR = '\n'
)
GO
SELECT * FROM TabelaTeste
=============================================================
Outra dúvida que me ocorreu tentando realizar esse teste foi que o SQL reclama de não estar conectado em nenhuma database.
Tem como eu usar algum tipo de "pré-nome", exemplo: nomedatabase.TabelaTeste ou [nomedatabase].TabelaTeste para acessar direto do script?
Obrigado!
Link para o comentário
Compartilhar em outros sites
4 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.