SSIS wydaje się nalegać na logowanie do tabeli systemowej SYSSSISLOG. Czy istnieje sposób, aby użyć innej tabeli?SSIS - Logowanie do tabeli innej niż SYSSSISLOG
Chcę, aby każdy pakiet logował się do innej tabeli.
SSIS wydaje się nalegać na logowanie do tabeli systemowej SYSSSISLOG. Czy istnieje sposób, aby użyć innej tabeli?SSIS - Logowanie do tabeli innej niż SYSSSISLOG
Chcę, aby każdy pakiet logował się do innej tabeli.
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ć.
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.
FYI: Z jakiegoś powodu SSC stracił ten link lub wziął post na blogu. Próbowałem wyszukiwać w SSC, ale nie mogę go znaleźć. –
@ShawnMelton został usunięty. To był dobry artykuł autorstwa Michaela Colesa. Może być już opublikowany w jednej z jego książek. –
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.
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
Nazwa procu w 2008 roku to SP_SSIS_ADDLOGENTRY. Wartość kolumny SourceID, gdzie event = 'Package Start' jest identyfikatorem GUID pakietu. –
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
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. –