Depurando errores en paquetes DTS SQLServer 2000

by Marc Cortada 10/05/2012

Si tenemos un paquete DTS que provoca un error en uno de sus pasos y se ejecuta de forma programada desde el Agente de SQLServer, no tendremos mucha información sobre el error en el historial de trabajos (administración > Agente SQL Server > Trabajos, botón derecho sobre el trabajo que da error y opción "historial de trabajos"). El historial del trabajo programado nos indicará que ha fallado en un paso "n" de la tarea programada (la tarea programada puede tener varios pasos) pero no nos dirá en qué paso de dentro de la DTS ha dado error, que es lo que realmente nos interesa para depurarlo o solucionarlo.

SQLServer 2000 tampoco proporciona muchos medios para capturar o tratar las excepciones en tiempo de ejecución a nivel de código T-SQL o dentro del flujo de la DTS. Por lo que no podremos poner un control de errores o excepciones muy exhaustivo, al contrario que en los lenguajes de programación más habituales y en versiones posteriores de SQLServer (a partir de la versión 2005 se pueden usar bloques de TRY CATCH en T-SQL).

Sin embargo, resulta útil saber que hay una opción de control de errores donde podremos ver e indicar en qué archivo se deja un registro de errores detallado de la ejecución de un paquete DTS. Se llega abriendo el paquete y posteriormente desde el editor de paquetes, y sin tener ningún objeto seleccionado, ir a: Menu paquete > propiedades, pestaña registro. En el archivo indicado en el campo Archivo de Errores (inicialmente no viene establecido) encontraremos información muy útil para saber qué es lo que puede estar fallando en un paso concreto, nos dice qué error es y en qué paso sucede.

Sin embargo hay una dificultad más. El log no indica el nombre del paso que le hemos asignado nosotros, si no que indica el nombre asignado internamente. En esta entrada se detalla cómo relacionar o localizar los pasos del log con nombre interno con el nombre asignado por nosotros.

También podremos activar o desactivar una traza (o registro) de todo lo que ocurre en los DTS. Esta opción de traza nos permite controlar los tiempos de ejecución y puede resultar útil para saber qué pasos son los más costosos.

Todo esto es un resumen, traducción y alguna pequeña corrección de este artículo en inglés http://vyaskn.tripod.com/sql_server_dts_best_practices.htm (el artículo entero es muy bueno).

Tags:

Categorías: BBDD | SQLServer | Programación y desarrollo | Trucos

Comentarios (2) -

Hans
13/06/2012 16:34:19 #

Gracias!!

Marc Cortada
13/06/2012 16:45:15 #

;)

No se aceptan más comentarios

Entradas por mes