No puede usar una función para insertar datos en una tabla base . Funciones retorno datos. Esto aparece como el primero limitación en la documentación :
"Modificar el estado de la base de datos" incluye cambiar cualquier dato en la base de datos (aunque una variable de tabla es una excepción obvia que al OP no le habría importado hace 3 años; esta variable de tabla solo vive durante la llamada a la función y no afecta las tablas subyacentes de ninguna manera).
Debería utilizar un procedimiento almacenado, no una función.