Après un certain temps à commenter et à supposer que le SP fonctionne bien avec les mêmes paramètres d'entrée et les mêmes données lorsqu'il est exécuté dans SSMS, je pense enfin pouvoir donner un dernier conseil :
En fonction des actions effectuées dans le SP (par exemple, insertion/mise à jour/suppression d'un grand nombre de données dans une boucle ou un curseur), vous devez définir nocount on au début de votre code.
set nocount on
Si ce n'est pas le cas ou si cela ne vous aide pas, veuillez ajouter plus d'informations, déjà mentionnées dans les commentaires (par exemple, tous les paramètres du Job et de chaque Jobstep, ce qui a été enregistré, ce qui se trouve dans l'historique du Job, vérifiez les journaux d'erreurs SQL, les journaux d'événements, etc. ..). Jetez également un coup d'œil aux "Journaux SQL Server", vous pourrez peut-être rassembler des informations ici. Il est également toujours judicieux de jeter un coup d'œil à l'événement Application/Système du serveur de base de données.
Mon dernier essai serait d'essayer d'exécuter une trace sql pour l'agent. Dans ce cas, vous lanceriez une trace et un filtre, par ex. par l'utilisateur que le service SQLAgent exécute. Il y a tellement d'options que vous pouvez définir pour les traces, je vous recommande donc de rechercher sur Google, de rechercher sur MSDN ou de poser une autre question ici sur stackoverflow.