Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Ten artykuł ułatwia obejście problemu polegającego na tym, że punkty kontrolne usług SQL Server Integration Services (SSIS) nie są uznawane za For Loop elementy kontenera ani Foreach Loop nie są honorowane.
Oryginalna wersja produktu: SQL Server
Oryginalny numer KB: 2624458
Symptomy
Rozważmy następujący scenariusz:
Usługi Microsoft SQL Server Integration Services można zainstalować na komputerze.
Utworzysz pakiet usług SSIS zawierający element Kontener pętli for, po którym następuje kontener sekwencji.
Zarówno kontener for loop, jak i elementy Kontener sekwencji mają jedną z następujących elementów:
- Wykonywanie zadania SQL (OR)
- Co najmniej dwa zadania WYKONAJ SQL (s), które są uruchamiane równolegle.
Należy włączyć ustawienie Punkt kontrolny dla pakietu SSIS.
Uruchamiasz pakiet usług SSIS
Kontener For Loop kończy się i wykonywanie pakietu jest dostarczane do kontenera sekwencji.
Wykonasz jedną z poniższych akcji:
- W przypadku pakietów z pojedynczym zadaniem Execute SQL należy zatrzymać wykonywanie pakietu, gdy zadanie jest nadal uruchomione.
- W przypadku pakietów z wieloma zadaniami Wykonywania zadań SQL zatrzymasz wykonywanie pakietu lub wystąpi błąd w jednym z tych zadań, podczas gdy inne zadania Wykonaj sql (s) są nadal uruchomione
Pakiet usług SSIS zostanie uruchomiony ponownie.
W tym scenariuszu pakiet rozpoczyna się od For Loop kontenera zamiast kontenera Sequence .
Uwaga 16.
Ten problem nie jest związany z wykonywaniem zadania SQL. Może się to zdarzyć również z innymi zadaniami.
Przyczyna
Jest to celowe. Dane punktu kontrolnego For Loop nie są zapisywane dla elementów kontenera i Foreach Loop kontenera. Jeśli kontener podrzędny w pętli zostanie uruchomiony pomyślnie, nie zostanie zarejestrowany w pliku punktu kontrolnego. Dlatego po ponownym uruchomieniu pakietu zadania w każdym z tych elementów kontenera są wykonywane ponownie.
Rozwiązanie
Aby obejść ten problem, opakuj For Loop kontener lub Foreach Loop wewnątrz kontenera Sequence .