Hola a todos
Tengo un trigger que funcionaba bien en sql2000, pero ahora en sql2005
express no me crea un cursor.
Alguien me podria indicar como eleva esta pregunta directamente a microsoft
?
Adjunto trigger
Gracias
RODRIGO
ALTER 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)
SELECT @DOCUMENTO= ins.documento,
@NUMERO_CPB= ins.numero_cpb,
@ano=convert(char(4),YEAR(MDE_FEHCPB)) FROM INSERTED INS;
Se declara dinamicamente por que el nombre de la tabla
se sabe solo con el ano MOVG"+@ano
SET @LcSql=N'DECLARE cabecera CURSOR SCROLL FOR SELECT OPER_CREA FROM
MOVG'+@ano+
' WHERE DOCUMENTO=@par1 AND NUMERO_CPB=@par2';
SET @LcPar=N'@par1 CHAR(2),@par2 CHAR(8)';
Al ejecutar la instruccion siguiente no se esta generando el cursor
Esto mismo en SQL 2000 funciona correctamente , pero en SQL 2005 genera
error
por que no se tiene el cursor
exec sp_executesql @LcSql,@LcPar,@Documento,@numero_cpb
** No se genero este cursor
OPEN cabecera;
FETCH NEXT FROM cabecera INTO @oper_crea
print @oper_crea
CLOSE cabecera;
DEALLOCATE cabecera;
/* Se Genera el siguiente error
Msg 16958, Level 16, State 3, Procedure grabar, Line 31
No se pudo completar la operación de cursor porque las opciones establecidas
cambiaron desde que se declaró el cursor.
*/
- Continua el trigger --
RETURN
Leer las respuestas