Udostępnij za pośrednictwem


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.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

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