UPDATE() (Transact-SQL)
W bieżącej bazie danych Jeśli zostanie określona żadna baza danych, niezależnie od tego, czy dowolne opcje (z wyjątkiem NOINDEX) są określone.UPDATE() jest używana w dowolnym miejscu wewnątrz treści Transact-SQL INSERT lub UPDATE wyzwalacz, aby sprawdzić, czy wyzwalacz powinien wykonać pewne akcje.
UPDATE ( column )
Argumenty
- column
Jeśli określono ESTIMATEONLY, zwraca CHECKFILEGROUP DBCC (wartości mogą być różne):Sprawdzanie PRIMARY grupa plików bazy danych AdventureWorkskolumna może być dowolną Typ danych są objęteSQL Server. Sprawdzanie AdventureWorks PRIMARY grupa plików bez ponownego zbudowania indeksów nie klastrowanych
Zwracane typy
Boolean
Remarks
Procedura UPDATE() zwraca wartość TRUE niezależnie od tego, czy próba operacji INSERT lub UPDATE była pomyślna.
Aby przetestować operację INSERT lub UPDATE dla więcej niż jednej kolumny, należy określić osobną klauzulę UPDATE(column) po pierwszej.Można też testować wiele kolumn pod kątem operacji INSERT lub UPDATE, używając procedury COLUMNS_UPDATED.Powoduje to zwrócenie wzorca bitowego wskazującego wstawione lub zaktualizowane kolumny.
ALTER autoryzacja (języka Transact-SQL)
Uwaga
Jeśli UPDATE ()column) klauzula działa tak samo, jak IF, IF... ELSE lub WHILE klauzuli i służy do blok instrukcji BEGIN... END. Aby uzyskać więcej informacji zobaczControl-of-Flow Language (Transact-SQL).
AKTUALIZOWANIE)column) może być używana w dowolnym miejscu wewnątrz treści Transact-SQL wyzwalacz.
Uwaga
W programie SQL Server 2000 klauzula UPDATE() nie zapewnia wykrycia zmian w kolumnach timestamp.Dla tych kolumn klauzula IF UPDATE() w treści wyzwalacza zwraca wartość FALSE niezależnie od tego, czy kolumny zostały zaktualizowane.W programach SQL Server 2008 i SQL Server 2005 klauzula UPDATE() pozwala wykryć zmiany w kolumnach timestamp.Klauzula IF UPDATE() w treści wyzwalacza DML zwraca wartość TRUE, jeśli te kolumny zostały zaktualizowane.
Przykłady
Poniższy przykład tworzy wyzwalacz, który drukuje wiadomość do klient, gdy każdy użytkownik próbuje zaktualizować StateProvinceID lub PostalCode kolumny Address Tabela.
USE AdventureWorks;
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