2010-09-07 14 views

Odpowiedz

2

Cóż, można wyszukać ten ogromny-ass tabeli dziennika z czymś takim:

--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' 

A jeśli chcesz się otaczać każdy pakiet w widoku, teraz wiesz jak to zrobić.

+0

Dziwne, w mojej tabeli sysssislog źródło odnosi się do zadań w pakiecie. Nie mogę znaleźć nazwy pakietu w dowolnym miejscu w tabeli. – Greg

+1

Nazwa pakietu jest kolumną źródłową w wierszu, w którym event = 'PackageStart' Po zebraniu tych informacji, możesz przejrzeć kolumnę sourceId, aby uzyskać identyfikator pakietu i executid, aby znaleźć wszystkie wiersze, które pochodziły z tego samego wykonania. pakiet. –

1

Zapoznaj się z następującym artykułem na temat SQL Server Central, być może będziesz musiał się zarejestrować, ale możesz to zrobić za darmo, a witryna okaże się doskonałym zasobem SQL Server.

W artykule opisano sposób implementacji niestandardowego dostawcy dziennika, który przekierowuje dane wyjściowe dziennika SSIS do innej tabeli. Korzystając z tej implementacji jako ramy, możesz ją rozszerzyć, aby spełnić wymagania.

SSIS Custom Logging the Easy Way

+0

FYI: Z jakiegoś powodu SSC stracił ten link lub wziął post na blogu. Próbowałem wyszukiwać w SSC, ale nie mogę go znaleźć. –

+0

@ShawnMelton został usunięty. To był dobry artykuł autorstwa Michaela Colesa. Może być już opublikowany w jednej z jego książek. –

5

Szybka odpowiedź jest taka sama jak odpowiedź Johna Sansom'a: Po zalogowaniu jest używany, to tworzy tabelę i przechowywanej proc (nazwa zmienia się z wersji od 2005 do 2008) przechowywane proc mogą być modyfikowane, aby zrobić cokolwiek chcesz. Jeśli przechowywany proces zostanie usunięty, serwer SQL ponownie go utworzy, ale jeśli przechowywany proces jest obecny, serwer SQL zakłada, że ​​jest w porządku i pozostawia go w spokoju. To pozwala modyfikować przechowywany proc, aby pisać do dowolnej tabeli/tabel.

+0

Nie jestem pewien, czy odpowiedzi na twoje czy Sansoma zadziałają. Nic nie przychodzi z SSIS do sp_dts_addlogentry, która mówi mi, który pakiet jest uruchomiony, więc nie będę mógł wysyłać informacji z logów z różnych pakietów do różnych tabel. Czy jestem w błędzie? – Greg

+0

Nazwa procu w 2008 roku to SP_SSIS_ADDLOGENTRY. Wartość kolumny SourceID, gdzie event = 'Package Start' jest identyfikatorem GUID pakietu. –

Powiązane problemy