Ir para conteúdo
Fórum Script Brasil
  • 0

Importando Dados através de script


blackcore

Pergunta

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

  • 0

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!!

Link para o comentário
Compartilhar em outros sites

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.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      652k
×
×
  • Criar Novo...