ZAMIAST wyzwalaczy aktualizacji
ZAMIAST aktualizacji wyzwalaczy można zdefiniować na widok lub tabela, aby zastąpić standardowe akcja instrukcja UPDATE.Zazwyczaj wyzwalacza INSTEAD OF aktualizacji jest zdefiniowana w widoku, aby zmodyfikować dane w jednym lub więcej tabel bazowych.
Instrukcji UPDATE odwołujące się do widoków z wyzwalaczy INSTEAD OF UPDATE należy podać wartości dla wszystkich nonnullable kolumny widoku w klauzula SET.Zawiera kolumny widoku, które odwołują się do kolumn w tabela bazowa, dla którego wartości wejściowe nie można określić, takie jak:
Kolumny obliczane w tabela bazowa.
Tożsamość kolumn w tabela bazowej, dla którego tożsamości WSTAW jest zestaw do OFF.
Podstawowe kolumny tabela z timestamp typu danych.
Często, gdy instrukcja UPDATE, która odwołuje się do tabela próbuje zestaw wartości kalkulowanej, tożsamość, lub timestamp kolumna, błąd zostanie wygenerowany, ponieważ wartości dla tych kolumn muszą być określone przez SQL Server.Te kolumna ma być uwzględniana w instrukcja UPDATE w celu spełnienia wymogów NOT NULL kolumna.Jednak jeśli instrukcja UPDATE odwołuje się do widoku z wyzwalacza INSTEAD OF aktualizacji, logika zdefiniowane w wyzwalaczu można pominąć te kolumny i uniknięcia błędów.Aby to zrobić, wyzwalacza INSTEAD OF UPDATE nie należy spróbować zaktualizować wartości dla odpowiednich kolumn w tabela bazowa.W tym wyłączeniem kolumn w klauzula zestaw instrukcja UPDATE.Gdy rekord jest przetwarzane z dodaje się tabela obliczaną, tożsamości lub timestamp Kolumna może zawierać wartość manekina musi spełniać wymagania kolumny NOT NULL, ale wyzwalacza INSTEAD OF aktualizacji ignoruje te wartości i są poprawne wartości zestaw przez SQL Server.
To rozwiązanie działa, ponieważ wyzwalacza INSTEAD OF UPDATE nie ma przetwarzać dane od dodaje się kolumny, które nie zostały zaktualizowane.W dodaje się tabela przekazany do wyzwalacza INSTEAD OF aktualizacji kolumn określona w wykonaj klauzula SET te same reguły, dodaje kolumn w wyzwalacza INSTEAD OF WSTAW.Dla kolumny nie jest określony w klauzula SET dodaje się tabela zawiera wartości znajdowały się przed wydaniem instrukcja UPDATE.Wyzwalacz można sprawdzić, czy określony kolumna został zaktualizowany przy użyciu aktualizacji IF (column) klauzula.Aby uzyskać więcej informacji, zobacz ZAMIAST WSTAWIANIA wyzwalaczy.
ZAMIAST aktualizacji wyzwalaczy, należy użyć wartości dostarczone dla obliczanych tożsamości, lub timestamp kolumny tylko w którym klauzula wyszukiwania warunków.
Logika wyzwalacza INSTEAD OF aktualizacji na widoku należy użyć przetworzyć zaktualizowane wartości dostarczone dla obliczanych tożsamości, timestamp, lub domyślne kolumna jest taki sam, jak logika stosowane dodaje wartości dla tych typów kolumn.
Ostrzeżenie
ZAMIAST aktualizacji wyzwalacze nie można zdefiniować w tabela klucz obcy definiowane za pomocą akcja AKTUALIZUJ.