JDBC tentando criar uma trigger SYBASE ANYWHERE

Salve Salve companheiros,

estou com um problema cruel para criar via codigo uma trigger em um banco de dados SYBASE ANYWHERE.
preciso criar uma trigger que salve em uma tabela os dados inseridos, alterados e excluidos de uma tabela.
identificando qual comando que executou a trigger (insert, update ou delete), e gravando na minha tabela.

o problema é que não consigo criar a trigger com o comando a seguir. me retorna o erro na execução do cast.

Syntax error near ‘AS’ on line 8

CREATE TRIGGER sync_tabela AFTER UPDATE, DELETE, INSERT ORDER 1 ON tabela FOR EACH ROW BEGIN CASE WHEN INSERTING THEN INSERT INTO sync VALUES ( (SELECT max(id_sync) FROM sync)+1 ,CAST ( NEW.id AS varchar ), table-name, trigger-name, 'INSERT', 'AGUARDANDO', NOW()) WHEN UPDATING THEN IF ( NEW.id <> OLD.id OR NEW.funcinario <> OLD.funcinario OR NEW.licao <> OLD.licao) THEN INSERT INTO sync VALUES ( (SELECT max(id_sync) FROM sync)+1 ,CAST ( NEW.id AS varchar ), table-name, trigger-name, 'UPDATE', 'AGUARDANDO', NOW()) END IF WHEN DELETING THEN INSERT INTO sync VALUES ( (SELECT max(id_sync) FROM sync)+1 ,CAST ( OLD.id AS varchar ), table-name, trigger-name, 'DELETE', 'AGUARDANDO', NOW()) END

ja me quebrei bastante e não consegui resolver.
agradeço a todos que tentarem me ajudar