pues yo te aconsejaria que no te fusiles el sql que te genera SQLServer

, jejeje, sabes nunca en mi miserable vida he usado funciones, pero al parecer, el error que manda es por que has declarado en exceso la variable id_agen y/o la funcion la tienes duplicada, por que no pruebas quitando las funciones del query y las pones por separado, ademas de quitar tanto codigo que pone el server para cuando te crea el query