Saludos a todos los colaboradores de este foro
Tengo el siguiente problema al generar un cursor con un trigger que funciona
bien en sql2000 pero al probar el SQL2005 genera error.. anexo trigger
set ANSI_NULLS ON
set QUOTED_IDENTIFIER OFF
GO
ALTER TRIGGER [dbo].[grabar] ON [dbo].[MOVD2006]
FOR INSERT
AS
DECLARE @DOCUMENTO CHAR(2),
@NUMERO_CPB CHAR(8),
@LcSql VARCHAR(200),
@ano CHAR(4)
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="DECLARE cursorcabecera CURSOR SCROLL FOR SELECT OPER_CREA FROM
MOVG"+@ano+
" WHERE DOCUMENTO='"+@DOCUMENTO+"' AND NUMERO_CPB='"+@NUMERO_CPB+"'"
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
Se requiere algun parametro especial en la instruccion EXECUTE
EXECUTE (@LcSql)
print @@error Devuelve 0
print @@FETCH_STATUS Devuelve 0
OPEN cursorcabecera No se crea el cursor
/* Se Genera el siguiente error
Msg 16958, Level 16, State 3, Procedure grabar, Line 30
No se pudo completar la operación de cursor porque las opciones establecidas
cambiaron desde que se declaró el cursor.
*/
- Continua el trigger
RETURN
- FIN DEL TRIGGER
Cualquier inquietud muchisimas gracias
RODRIGO
BOGOTA-COLOMBIA
TEL 3103495468
Leer las respuestas