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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar