Aika monta kertaa on tullut törmättyä ongelmaan jossa SSIS-paketin ajo kaatuu SQL-virheeseen.
Oletuksena SSIS kaatuessaan kertoo vain sarakkeen sisäisen numeron. Virhe voi olla esim. null-arvo not null-sarakkeessa, tai kirjain numeroiden joukossa. Virheviesti on hyvin geneerinen. Joskus ongelma ratkeaa hyvin nopeasti pelkkää dataa katsomalla. Joskus ongelman selvittämiseen on mennyt useampikin tunti aikaa. SQL Server Trace:n katselu ei yleensä auta asiaa.
Tähän on ollut olemassa erilaisia ratkaisuita kuten:
http://dougbert.com/blog/post/Adding-the-error-column-name-to-an-error-output.aspx
Skriptillä ongelman ratkaisu on aika monimutkaista, tuota logiikkaa ei tule jokaiseen pakettiin lisättyä vaan siltä varalta että virhe sattuisi joskus tulemaan. Osa virheenkäsittelylogiikasta toki itsellänikin on SSIS:n omassa tamplate-paketissani, sarakkeen nimi sieltä puuttuu.
Pragmatic Worksin Task Factoryn ilmaisversio sisältää tämän ominaisuuden:
http://dougbert.com/blog/post/Adding-the-error-column-name-to-an-error-output.aspx
Task Factory pitäisi kuitenkin saada asennettua asiakkaan ympäristöön, aina tämä ei ole mahdollista.
Onneksi maailmalta löytyy ilmainen ja yksinkertainen keino saada koko metadata käyttöön:
http://dfld.codeplex.com/releases/view/104798
dfld on manuaalinen työkalu. Luo ensin SQL:llä taulu johon metadata kirjoitetaan, aja tämän jälkeen .exe, anna ohjeiden mukaan parametriksi palvelin, kanta sekä SSIS-paketin osoite. Todella yksinkertaista. Tämän jälkeen voit käyttää SSIS:n metadataa vaikka raportilla – tai virhelokiin tavaraa kirjoittaessasi. Itse säästin juuri pari tuntia asiakkaan arvokasta aikaa kun virheellisen datan omaava sarake löytyi hetkessä.