Estás usando incorrectamente el nombre de las variables locales. Acuérdate de que no estás programando para SQL Server, sino para mySQL.
Las variables locales no tiene prefijos, si estás recibiendo la variable numerocomprobante, no se le debe poner el prefijo @numerocomprobante,
porque esa sería otra variable diferente.
Sólo las variables de usuario (de sesión) usan prefijo, pero no las locales de un procedimiento.
Lo correcto sería:
Código MySQL:
Ver original SET anulacioncompras
= 1, fehoanulacioncompra
= fehaanulacioncompra
, motivoanulacioncompras = motivoanulacioncompras;
WHERE numerocomprobantecompras
= numerocomprobante
;
Tips:
- No uses nombres tan largos. Terminarás teniendo problemas de sintaxis al tipearlos.
- No uses VARCHAR para almacenar un TIMESTAMP. Usa los tipos de datos correctos. Un TIMESTAMP tiene una longitud real en memoria y disco de 8 bytes, mientras que el VARCHAR necesita 19 para hacer lo mismo. Y eso es simplemente porque los datos de fecha y hora se almacenan como binarios y no como caracteres, al igual que los números.