Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Eli_na_duvida

Stored Procedure x Job

Recommended Posts

Boa tarde!

 

Estou com um problema e não sei por onde começar a recorrer.

No sistema que trabalho existe um job para atualizar uma stored procedure todos os dias as 00:03 horas, porém eu precisei fazer uma alteração durante o dia na qual as infõrmações do banco deveriam estar atualizadas de imediato. Por isso usei: exer SotredProcedure para "rodar na mão"

Porém,não atualiza nada ... tentei também executar a SP clicando com o botão direito nela e pedindo para executar, mas não atualiza nada :(

Alguém sabe me dizer se está faltando alguma coisa?

 

O banco que utilizo é SQL Server 2005 Management Studio.

 

Obrigada!

 

Eli

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eli,

 

eh bem complicado tentar responder pq nao temos a estrutura nem que tipo de informacoes você esta tentando atualizar.

Qdo você "roda na mão", ou simplesmente dah um

exec NOME_DA_PROCEDURE
Ele nao te retorna nada?!

você pode clicar em messages (que eh uma aba que tem ao lado de results) e ver qtas linhas foi afetada.

 

você tem que saber o que ela faz, quem esta procedure chama, se ela possui "dependences".

Se nao souber, tenta dar um Modify nela e executar passo a passo o que faz.

 

Abçs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Foi isso que eu fiz ... no meu ponto de vista está correta a maneira que rodei. Não fui eu que criei a SP, peguei há poucos dias esse sistema para dar manutenção então está sendo bem mais difícil pegar o bonde andando.

Já analizei a cada linha da SP e continuo achando que está tudo OK ...

Valeu pela foça!

 

Eli

 

A Procedure é essa:

 

CREATE PROCEDURE [dbo].[saldoAnterior]

 

AS

BEGIN

 

Declare @mes_atual int

Declare @mes_anterior int

Declare @ano_atual int

Declare @ano_anterior int

Declare @saldo int

Declare @saldo_final int

Declare @co_funcionario int

 

Set @saldo_final = 0

Set @mes_atual = month(getdate())

Set @ano_atual = year(getdate())

 

if (@mes_atual = 1 )

begin

set @mes_anterior = 12

set @ano_anterior = @ano_atual - 1

end

else

begin

set @mes_anterior = @mes_atual - 1

set @ano_anterior = @ano_atual

end

 

Declare func cursor for

select co_funcionario from funcionarios (nolock) where ind_coordenador = 'N' and ind_ativo = 'S'

 

open func

fetch next from func into @co_funcionario

 

begin transaction

 

while @@FETCH_STATUS = 0

begin

 

Declare cursor_ cursor for

SELECT ((ISNULL(SUM({ fn HOUR(dh_HoraExtraCompensar) }),0) * 60) + (ISNULL(SUM({ fn MINUTE(dh_HoraExtraCompensar) }),0))) as saldo FROM frequencia_relogioponto (nolock) where co_funcionario = @co_funcionario and month(dt_data) = @mes_anterior and year(dt_data) = @ano_anterior

open cursor_

fetch next from cursor_ into @saldo

 

Set @saldo_final = @saldo

 

close cursor_

deallocate cursor_

 

Declare cursor_1 cursor for

SELECT ((ISNULL(SUM({ fn HOUR(dh_HoraExtraCompensadas) }),0) * 60) + (ISNULL(SUM({ fn MINUTE(dh_HoraExtraCompensadas) }),0))) as saldo FROM frequencia_relogioponto (nolock) where co_funcionario = @co_funcionario and month(dt_data) = @mes_anterior and year(dt_data) = @ano_anterior

open cursor_1

fetch next from cursor_1 into @saldo

 

Set @saldo_final = @saldo_final - @saldo

 

close cursor_1

deallocate cursor_1

 

 

Declare cursor_2 cursor for

SELECT DISTINCT ISNULL(Saldo_Anterior,0) as saldo from frequencia_relogioponto (nolock) where co_funcionario = @co_funcionario and month(dt_data) = @mes_anterior and year(dt_data) = @ano_anterior

open cursor_2

fetch next from cursor_2 into @saldo

 

Set @saldo_final = @saldo_final + @saldo

 

close cursor_2

deallocate cursor_2

 

update frequencia_relogioponto set saldo_anterior = @saldo_final where co_funcionario = @co_funcionario and month(dt_data) = @mes_atual and year(dt_data) = @ano_atual

 

fetch next from func into @co_funcionario

 

end --while

 

close func

deallocate func

 

commit transaction

 

END

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.