2010-09-07 13 views

Respuesta

2

Bueno, se puede consultar la mesa de registro de gran-culo con algo como esto:

--first, we identify the packages 
;with DetectedPackages as (
select source, s.executionid 
from dbo.sysssislog as s 
where event = 'PackageStart' 
group by source, s.executionid 
) 
--then we use those executionids to display results 
select * from dbo.sysssislog as s 
join DetectedPackages dp on s.executionid = dp.executionid 
where dp.source = 'PackageName' 

Y si desea encapsular cada paquete en una vista, ahora usted sabe cómo hacerlo.

+0

Wierd, en mi tabla sysssislog, source hace referencia a tareas dentro del paquete. No puedo encontrar el nombre del paquete en ninguna parte de la tabla. – Greg

+1

El nombre del paquete es la columna de origen en la fila donde event = 'PackageStart' Después de haber reunido esa información puede mirar a la columna sourceId para obtener el guid del paquete y executionid para encontrar todas las filas que fueron de la misma ejecución de ese paquete. –

1

Eche un vistazo al siguiente artículo en SQL Server Central, es posible que necesite registrarse pero es gratis y encontrará que el sitio es un excelente recurso de SQL Server.

El artículo detalla cómo implementar un proveedor de registro personalizado que redirige el resultado de registro de SSIS a otra tabla. Usando esta implementación como su marco, puede ampliarla para cumplir con sus requisitos.

SSIS Custom Logging the Easy Way

+0

FYI: Por alguna razón SSC perdió ese enlace o tomó la publicación del blog. Intenté buscar SSC pero no puedo encontrarlo. –

+0

@ShawnMelton fue eliminado. Fue un buen artículo de Michael Coles. Puede ser publicado en uno de sus libros por ahora. –

5

respuesta rápida es la misma que la respuesta de John Sansom: Cuando se utiliza el registro, se crea una mesa y un procedimiento almacenado (nombre varía con la versión entre 2005 y 2008) El procedimiento almacenado puede ser modificado para hacerlo lo que quieras. Si se elimina el proceso almacenado, el servidor Sql lo vuelve a crear, pero si el proceso almacenado está allí, el servidor Sql supone que está bien y lo deja en paz. Esto le permite modificar el proceso almacenado para escribir en cualquier tabla/tablas que desee.

+0

No estoy seguro de si las respuestas de usted o Sansom funcionarán. No viene nada de SSIS a sp_dts_addlogentry que me diga qué paquete se está ejecutando, por lo que no podría enviar información de registro de diferentes paquetes a diferentes tablas. ¿O estoy equivocado? – Greg

+0

El nombre de proc en 2008 es SP_SSIS_ADDLOGENTRY. El valor de la columna SourceID donde event = 'Package Start' es el GUID del paquete. –

Cuestiones relacionadas