Update() (Transact-SQL)
Zwraca wartość wartość logiczna , wskazującą, czy INSERT lub UPDATE podjęto w określonej kolumna tabela lub widoku.Update() jest używana w dowolnym miejscu wewnątrz treści Transact-SQL WSTAW lub AKTUALIZUJ wyzwalacz, aby sprawdzić, czy wyzwalacz należy wykonać pewne akcje.
Składnia
UPDATE ( column )
Argumenty
- column
Nazwa kolumna jest do testowania INSERT lub UPDATE akcja.Ponieważ nazwa tabela jest określony w sprawie klauzula wyzwalacz, zawiera nazwę tabela , przed nazwą kolumna .kolumna może być żadnej Typ danych obsługiwane przez SQL Server.Jednakże w tym kontekście nie można użyć kolumny obliczane.
Zwracane typy
Logiczny
Uwagi
Update() zwraca wartość TRUE, niezależnie od tego, czy próba INSERT lub UPDATE zakończy się pomyślnie.
Aby przetestować INSERT lub UPDATE akcja dla więcej niż jednej kolumna, należy określić oddzielne AKTUALIZACJĘ (column) po pierwszej klauzula .Wiele kolumn mogą być badane na działania INSERT lub UPDATE za pomocą COLUMNS_UPDATED.Zwraca wzorzec bitowy , który wskazuje kolumny, które zostały wstawione lub zaktualizowane.
Jeżeli aktualizacja zwraca wartość TRUE w akcje WSTAW, ponieważ wartości jawny lub niejawny wartości (NULL), dodaje się kolumny.
Ostrzeżenie
Jeśli aktualizacja (column) klauzula działa tak samo, jak IF, jeśli...ELSE lub WHILE klauzula i używać BEGIN...KONIEC blok.Aby uzyskać więcej informacji, zobacz Sterowanie przepływem języka (Transact-SQL).
Aktualizacja (column) mogą być używane w dowolnym miejscu wewnątrz treści Transact-SQL wyzwalacza.
Ostrzeżenie
W SQL Server 2000, UPDATE() jest nie wykrywać zmiany w timestamp kolumny.Dla tych kolumn Jeżeli UPDATE() klauzula wewnątrz ciała wyzwalacza zwraca wartość FALSE, niezależnie od tego, czy kolumny są aktualizowane.W SQL Server 2008 i SQL Server 2005, UPDATE() wykrywa zmiany timestamp kolumny.klauzula IF UPDATE() wewnątrz ciała wyzwalacza DML zwraca wartość TRUE, jeśli te kolumny są aktualizowane.
Przykłady
Poniższy przykład tworzy wyzwalacz, który drukuje wiadomość do klient , gdy ktoś próbuje zaktualizować StateProvinceID lub PostalCode kolumny Address tabela.
USE AdventureWorks2008R2;
GO
IF EXISTS (SELECT name FROM sys.objects
WHERE name = 'reminder' AND type = 'TR')
DROP TRIGGER Person.reminder;
GO
CREATE TRIGGER reminder
ON Person.Address
AFTER UPDATE
AS
IF ( UPDATE (StateProvinceID) OR UPDATE (PostalCode) )
BEGIN
RAISERROR (50009, 16, 10)
END;
GO
-- Test the trigger.
UPDATE Person.Address
SET PostalCode = 99999
WHERE PostalCode = '12345';
GO