Condividi tramite


Trabajo del Agente SQL Server devuelve un estado de fallo después de ejecución exitosa (es-ES)

He visto varias veces esta pregunta en los foros. El trabajo está programado para copiar algunos archivos a través de la red, los archivos se copian pero el estado final del trabajo muestra Error.

La razón de la condición de falla es que el Agente SQL Server utiliza el código de salida devuelto por el programa haciendo la copia para determinar si el paso del trabajo fué ejecutado con éxito y el valor predeterminado es 0 (cero) para el éxito. Puedes ver este valor por defecto (y cambiarlo) abriendo las propiedades del trabajo en SSMS y seleccionando Editar en el paso del trabajo correspondiente. El tipo de trabajo debe ser «Sistema operativo (CmdExec)» y justo antes de la ventana de comandos, podrás verlo: Código de salida de proceso de un comando correcto: 0

Si el programa utilizado devuelve algo distinto a 0 en caso de éxito, deberás cambiar ese valor para reflejar correctamente cual es el estado del paso del trabajo después de la ejecución.

Cuando he visto ésta pregunta en los foros, en todos los casos el usuario estaba utilizando Robocopy para copiar los archivos. Robocopy devuelve 0 sólo cuando no hay archivos copiados. Si se copiaron los archivos, el valor devuelto es 1.