Hola Colegas
Por fin se resolvio el error que me estaba generando al crear un cursor
dentro de un trigger
gracias a la coloboracion de Alejandro Mesa y Maxi.
La ultima de sugerencia de Alejandro fue agregarle en la sintaxis del cursor
la palabra STATIC
Anexo el texto completo que me funciona en SQL2005
CREATE TRIGGER [dbo].[grabar] ON [dbo].[MOVD2006]
FOR INSERT
AS
RETURN
DECLARE @DOCUMENTO CHAR(2),
@NUMERO_CPB CHAR(8),
@LcSql nVARCHAR(200),
@ano CHAR(4),
@LcPar nVARCHAR(200),
@oper_crea char(10),
@cabecera cursor
SELECT @DOCUMENTO= ins.documento,
@NUMERO_CPB= ins.numero_cpb,
@ano=convert(char(4),YEAR(MDE_FEHCPB)) FROM INSERTED INS;
SET @LcSql=N'set @cabecera=CURSOR STATIC FOR SELECT OPER_CREA FROM
MOVG'+@ano+
' WHERE DOCUMENTO=@par1 AND NUMERO_CPB=@par2;open @cabecera ';
SET @LcPar=N'@par1 CHAR(2),@par2 CHAR(8),@cabecera cursor output';
exec sp_executesql @LcSql,@LcPar,@Documento,@numero_cpb,@cabecera output
if cursor_status('variable', '@cabecera') = 1
BEGIN
FETCH NEXT FROM @cabecera INTO @oper_crea
CLOSE @cabecera;
DEALLOCATE @cabecera;
END
RETURN
MIL GRACIAS A TODOS
RODRIGO BEDOYA ZULUAGA
BOGOTA-COLOMBIA
TEL 310-3495468
Leer las respuestas