SSIS parece insistir en el inicio de sesión en la tabla del sistema SYSSSISLOG. ¿Hay alguna manera de hacer que use una tabla diferente?SSIS - Registro en la tabla que no sea SYSSSISLOG
Quiero que cada paquete se registre en una mesa diferente.
SSIS parece insistir en el inicio de sesión en la tabla del sistema SYSSSISLOG. ¿Hay alguna manera de hacer que use una tabla diferente?SSIS - Registro en la tabla que no sea SYSSSISLOG
Quiero que cada paquete se registre en una mesa diferente.
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.
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.
FYI: Por alguna razón SSC perdió ese enlace o tomó la publicación del blog. Intenté buscar SSC pero no puedo encontrarlo. –
@ShawnMelton fue eliminado. Fue un buen artículo de Michael Coles. Puede ser publicado en uno de sus libros por ahora. –
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.
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
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. –
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
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. –