Jump to content

[Resolvido] Update


mastermind1989

Recommended Posts

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

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

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • 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.