Jump to content
mastermind1989

[Resolvido] Update

Recommended Posts

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

Edited by Caça
GeSHi

Share this post


Link to post
Share on other 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.

Edited by Rechousa
  • Vote 1

Pedro Martins

Sharing is Knowledge!

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

Share this post


Link to post
Share on other 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

Edited by mastermind1989

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.