ZAMIAST Z UPDATE wyzwalaczy
ZAMIAST Z UPDATE Wyzwalacze mogą być definiowane w widoku lub tabela, aby zastąpić standardowe działanie instrukcja UPDATE.Zazwyczaj wyzwalacza Z INSTEAD UPDATE jest zdefiniowany w celu modyfikowania danych w jednej lub kilku tabel bazowych.
Instrukcje UPDATE odwołujące się do widoku z wyzwalaczami O INSTEAD UPDATE należy podać wartości dla wszystkich kolumn nonnullable widoku w klauzula zestaw.Dotyczy to także kolumn widoku odwołujące się do kolumn w tabela bazowa, dla których wartości wejściowych nie można określić, takie jak:
Kolumny obliczane w tabela bazowa.
Kolumny identyfikacji w tabela bazowa, dla których IDENTITY INSERT jest zestaw na OFF.
Utworzyć kolumny w tabela z timestamp Typ danych.
Często, gdy instrukcja UPDATE, która odwołuje się do tabela próbuje należy ustawić wartość obliczaną, tożsamość, lub timestamp kolumna, błąd zostanie wygenerowany, ponieważ wartości dla tych kolumn musi być określony SQL Server. Te kolumna ma być uwzględniana w instrukcja UPDATE, aby spełnić wymagania NOT NULL kolumna.Jednak jeśli instrukcja UPDATE odwołuje się do widoku z wyzwalacz Z INSTEAD UPDATE, logiczne zdefiniowane w wyzwalaczu uruchamiane można pominąć te kolumny i uniknąć błędu.W tym celu należy wyzwalacza Z INSTEAD UPDATE nie musi spróbuj zaktualizować wartości dla odpowiednich kolumn w tabela bazowa.Można to zrobić, bez uwzględnienia kolumn w klauzula zestaw instrukcja UPDATE.Gdy rekord jest przetwarzane z dodaje tabela, obliczaną, tożsamość lub timestamp kolumna może zawierać wartość fikcyjny do spełnienia wymogów kolumny NOT NULL, ale wyzwalacza Z INSTEAD UPDATE ignoruje tych wartości i prawidłowe wartości są ustawiane przez SQL Server.
To rozwiązanie działa, ponieważ wyzwalacz Z INSTEAD UPDATE nie ma do przetwarzania danych z dodaje kolumny, które nie zostały zaktualizowane.W dodaje tabela przekazywane do wyzwalacza UPDATE INSTEAD Z kolumn określonych w dalszych klauzula zestaw te same reguły jako dodaje kolumn w wyzwalacz INSERT Z INSTEAD.W przypadku kolumn nie są określone w klauzula zestaw dodaje tabela zawiera wartości, które istniały przed wydaniem instrukcja UPDATE.Wyzwalacz może sprawdzić, czy danej kolumna został zaktualizowany za pomocą (jeżeli UPDATEcolumn) klauzula. Aby uzyskać więcej informacji zobaczZAMIAST Z INSERT wyzwalaczy.
ZAMIAST Z UPDATE wyzwalaczy, należy użyć wartości dostarczone na obliczone tożsamości, lub timestamp warunki wyszukiwania kolumn tylko w klauzula WHERE.
Obliczona logikę wyzwalacz Z INSTEAD UPDATE do widoku należy użyć do przetworzenia zaktualizowane wartości dostarczane do tożsamości, timestamp, lub domyślne kolumna jest taka sama, jak logiki, stosowane do dodaje wartości dla tych typów kolumn.
Uwaga
ZAMIAST Z UPDATE wyzwalaczy nie mogą być definiowane w tabela, która ma zdefiniowane przy użyciu akcja UPDATE klucz obcy.