Sterowanie wykonywaniem wyzwalacza podczas zbiorczego, importowanie danych
A wyzwalacz jest specjalny formularz procedura składowana, która jest wykonywana automatycznie, gdy użytkownik zmienia dane w tabela lub widoku.Wykonywanie wyzwalaczy może wpłynąć na wydajność operacji import zbiorczy.Na przykład wyzwalacz, który wysyła wiadomości każdy czas jest importowany rekord zmniejsza szybkość operacji importu zbiorczego i tworzy dziesiątki wiadomości e-mail.
Podczas zbiorczego importowania danych, można kontrolować, czy wykonywane są wyzwalacze (opalanych) przez operację importu zbiorczego.Operacja importu zbiorczego powinny wykonać wyzwalaczy tylko dla tabela z WSTAWIĆ i zamiast wyzwalaczy, które obsługują wiele wstawia wiersz.Aby uzyskać więcej informacji o tych wyzwalaczy, zobacz DMLWyzwalacze.
Ważne: |
---|
Wyłączenie wyzwalaczy schemat zmodyfikować blokada może być podjęte w celu aktualizacji metadane.Może to utrudniać innych poleceń (takich jak budowanie indeksu online) lub transakcji.Na przykład izolacji transakcji migawka dostęp do tabela miejsce docelowe może zakończyć się niepowodzeniem z powodu równoległych zmian DDL. |
Jeśli włączone są wyzwalacze, są one wykonywane raz dla każdej partia.
Podczas operacji importu zbiorczego zachowanie zależy od polecenia używane dla operacji.Domyślnie bcp polecenia i WSTAW luzem (Transact-SQL) instrukcja wyłączania wyzwalaczy.W przeciwieństwie do INSERT...WYBIERZ * Z OPENROWSET(BULK...) instrukcja, domyślnie jest wykonać wyzwalaczy.
W następującej tabela podsumowano zachowania domyślnego.
Polecenia Importuj luzem |
Zachowanie domyślne |
---|---|
BCP |
Wyłącz wyzwalaczy |
WSTAW LUZEM |
Wyłącz wyzwalaczy |
WSTAW...WYBIERZ * Z OPENROWSET(BULK...) |
Wykonanie wyzwalaczy |
Każdego polecenia import zbiorczy zawiera kwalifikator, który pozwala zmienić sposób obsługi wyzwalaczy, jak opisano w poniższych sekcjach.
Wyzwalacze wykonującego bcp lub WSTAW luzem
Domyślnie bcp poleceń i instrukcja WSTAWIENIA luzem nie wykonać wyzwalaczy.Jednakże wyzwalaczy można włączyć przy użyciu następujących informacji:
Polecenia |
Kwalifikator |
Typ kwalifikatora. |
---|---|---|
BCP |
-h"FIRE_TRIGGERS" |
Wskazówka |
WSTAW LUZEM |
FIRE_TRIGGERS |
Argument |
Jeśli FIRE_TRIGGERS jest określone dla operacji importu zbiorczego, wykonuje WSTAW i INSTEAD wyzwalaczy, które są zdefiniowane w tabela wszystkie wiersze wstawione do tabela.
Aby uzyskać więcej informacji, zobacz Narzędzie bcp i BULK INSERT (Transact-SQL).
Wyłączenie usługi wyzwalaczy w INSERT...WYBIERZ * Z OPENROWSET(BULK...)
Domyślnie dostawca zbiorczych zestawów zestaw wierszy OPENROWSET wykonuje wyzwalaczy.Wyzwalacze można wyłączyć za pomocą następującego kwalifikator:
Polecenia |
Kwalifikator |
Typ kwalifikatora. |
---|---|---|
WSTAW...WYBIERZ * Z OPENROWSET(BULK...) |
WITH(IGNORE_TRIGGERS) |
Wskazówka tabeli |
Jeśli określono ten wskazówka wyzwalacze nie są wykonywane przez OPENROWSET dostawca zbiorczych zestawów zestaw wierszy.Więcej informacji o IGNORE_TRIGGERS wskazówki, zobacz Wskazówki tabel (Transact-SQL).
Importowanie duże partie z wyzwalaczy włączone
SQL Server 2005i nowszych wersja wiersza dla wyzwalaczy i przechowuje wersje wierszy w wersja są przechowywane w tempdb.Zanim możliwe import zbiorczy dużych partia rekordy danych przy użyciu wyzwalaczy, może zajść potrzeba zwiększenia rozmiaru tempdb do wpływ wyzwalaczy na magazynu wersja.Aby uzyskać więcej informacji, zobacz Obciążenie zasobów wersji wiersza.