problema com Stored Procedure

29/05/2006

0

tenho essa store procedure:

SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO





ALTER PROCEDURE SP_RENUMERA_MOVIMENTOS AS
BEGIN

DECLARE @TESTE CURSOR
DECLARE @CHAVE INT
DECLARE @REG INT

SET @TESTE = CURSOR FORWARD_ONLY STATIC FOR
SELECT CD_MOVIMENTO FROM ALM_MOVIMENTOS
ORDER BY ANO_EXERCICIO, DT_MOVIMENTO, SB_TIPO_MOVIMENTO

SELECT @REG=0

OPEN @TESTE
FETCH NEXT FROM @TESTE INTO @CHAVE
WHILE @@FETCH_STATUS = 0
BEGIN
SELECT @REG = @REG+1
UPDATE ALM_MOVIMENTOS
SET ST_DOC_MOVIMENTO=REPLICATE(´0´,9-LEN(@REG))+CONVERT(VARCHAR(9),@REG)
WHERE CD_MOVIMENTO=@CHAVE
FETCH NEXT FROM @TESTE INTO @CHAVE
END

CLOSE @TESTE
DEALLOCATE @TESTE
END



SELECT * FROM ALM_MOVIMENTOS

GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO

que serve para renumerar a tabela de movimentos, so q tenho um problema minha tabela possui uma coluna ano_exercicio, e tbm um campo q recebe a data do movimento, gostaria que ele renumerasse mais por ano por exemplo, a cada novo ano ele rretorna ao movimento ´0000001´ ai havendo mudança de ano ele novmente retorna pra ´000001´.. assim por diante


Ara.es

Ara.es

Responder

Posts

06/06/2006

Wcrivelini

Confesso que eu estranhei a sintaxe q vc usa pra declarar o cursor, mas vamos lá.

Listei só que acrescenta ao código existente e eu nao testei :)

declare @ANOANTERIOR INT
declare @ANOEXERCICIO INT
......

--altere seu cursor pra listar também o ANO_EXERCICIO
DECLARE TESTE CURSOR FOR
SELECT CD_MOVIMENTO, ANO_EXERCICIO
FROM ALM_MOVIMENTOS
ORDER BY ANO_EXERCICIO, DT_MOVIMENTO, SB_TIPO_MOVIMENTO


-- naturalmente, o FETCH muda tb pra capturar as duas variáveis
OPEN TESTE

FETCH NEXT FROM TESTE INTO @CHAVE, @ANOEXERCICIO

SET @ANOANTERIOR = 0

WHILE .......
BEGIN

IF @ANOANTERIOR < @ANOEXERCICIO
SET @REG = 0

..................

SET @ANOANTERIOR = ANO_EXERCICIO
END


Responder

08/06/2006

Ara.es

Valeu wcrivelini, irei verificar se funciona aki obrigado..


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar