Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

mastermind1989

[Resolvido] Update

Mensagens Recomendadas

mastermind1989

Boa tarde

Eu criei uma tabela na base de dados a partir de outras com a seguinte query:

SELECT	 GPR_ArtigoComponentes.Artigo, Artigo.ArtigoPai, Artigo.PCPadrao, GPR_ArtigoOperacoes.TempoOperacao, GPR_ArtigoOperacoes.TempoOperacaoPor,
  Artigo.Descricao, GPR_ArtigoComponentes.Componente, GPR_ArtigoComponentes.Consumo, GPR_ArtigoComponentes.ConsumoPor,
  GPR_ArtigoOperacoes.Operacao, Artigo.PCPadrao * GPR_ArtigoComponentes.Consumo AS MatériaPrima, GPR_ArtigoOperacoes.Artigo AS ArtigoOper,
  GPR_ArtigoOperacoes.IDOperacao
FROM		 Artigo LEFT OUTER JOIN
  GPR_ArtigoOperacoes ON Artigo.Artigo = GPR_ArtigoOperacoes.Artigo LEFT OUTER JOIN
  GPR_ArtigoComponentes ON Artigo.Artigo = GPR_ArtigoComponentes.Componente

Até aqui tudo bem mas agora precisava que estes dados fossem actualizados de x em x tempo (com os dados das tabelas de origem) já que uso esta tabela para um relatório que criei no programa "crystal reports"

Acho que o melhor seria um stored procedure ou um job, mas o meu sql server não tem o sql server agent (pelo menos que eu o encontre) para fazer o job e tentei fazer o stored procedure (através de um "update") mas não sei como importar os dados correctamente ainda para mais vindo de várias tabelas diferentes.

Alguém me poderia dar uma ajudinha nisto?

Atenciosamente

Frederico Ribeiro

Editado por Caça
GeSHi

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
Rechousa

Viva,

A utilização de uma vista não seria a solução para o teu problema?

Com vistas podes escolher várias tabelas, como tens no exemplo, vários campos e colocar filtros (cláusula WHERE) e a vista está sempre actualizada, pois trata-se nada mais, nada menos do que uma query (tal como a indicada), mas com um nome.

Por norma os dados da vista não se encontram gravados fisicamente na BD (uma vez que no momento da execução da vista, é executada a query que descreve a vista e os dados são retornados directamente das tabelas origem (exemplo: Artigo, GPR_ArtigoComponentes, etc).

No caso de teres uma vista indexada, os dados serão armazenados fisicamente na base de dados, tal como se de uma tabela se tratasse.

Outra hipótese seria criares uma tarefa agendada no windows em que essa tarefa executaria um script SQL (sugiro criares mesmo um ficheiro de texto com extensão SQL e colocares dentro do ficheiro os comandos necessários à execução da stored procedure ou queries).

A forma de executar o script seria através do utilitário SQLCMD.

Não tens Jobs no SQL Server, mas tens Jobs no Windows ;)

Espero ter ajudado.

Editado por Rechousa
  • Voto 1

Pedro Martins

Sharing is Knowledge!

http://www.linkedin.com/in/rechousa

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
mastermind1989

Obrigado pela resposta, ajudou bastante.

Já criei a View e realmente na base de dados o processo é muito mais simples desta forma.

Atenciosamente

Frederico Ribeiro

Editado por mastermind1989

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.