• This seems to work well.

    ;WITH XMLNAMESPACES ('www.microsoft.com/SqlServer/Dts' AS pNS1,

    'www.microsoft.com/SqlServer/Dts' AS DTS) -- declare XML namespaces

    SELECT c.name,

    SSIS_XML.value('./pNS1:Property[@pNS1:Name="ObjectName"][1]',

    'varchar(100)') AS ObjectName,

    SSIS_XML.value('./pNS1:Property[@pNS1:Name="Description"][1]',

    'varchar(100)') AS Description,

    SSIS_XML.value('pNS1:ObjectData[1]/pNS1:ConnectionManager[1]

    /pNS1:Property[@pNS1:Name="ConnectionString"][1]', 'varchar(MAX)') ConnectionString

    FROM

    --

    ( SELECT id ,

    CAST(CAST(packagedata AS VARBINARY(MAX)) AS XML) PackageXML

    FROM [msdb].[dbo].[sysdtspackages90]

    ) PackageXML

    CROSS APPLY PackageXML.nodes('/DTS:Executable/DTS:ConnectionManager') SSIS_XML ( SSIS_XML )

    INNER JOIN [msdb].[dbo].[sysdtspackages90] c ON PackageXML.id = c.id

    WHERE SSIS_XML.value('pNS1:ObjectData[1]/pNS1:ConnectionManager[1]

    /pNS1:Property[@pNS1:Name="ConnectionString"][1]', 'varchar(MAX)') LIKE '%data source%'

    Catch-all queries done right [/url]
    Gail Shaw's Performance Blog[/url]