Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Baza danych SQL w usłudze Microsoft Fabric
Zwraca wartość boolowską, która wskazuje, czy próba INSERT lub UPDATE została podjęta na określonej kolumnie tabeli lub widoku. UPDATE() jest używany w dowolnym miejscu wewnątrz ciała wyzwalacza INSERT lub UPDATE Transact-SQL do testowania, czy wyzwalacz powinien wykonać określone akcje.
Transact-SQL konwencje składni
Składnia
UPDATE ( column )
Arguments
kolumna
To nazwa kolumny testującej działanie INSERT lub UPDATE. Ponieważ nazwa tabeli jest podana w klauzuli ON wyzwalacza, nie należy dodawać nazwy tabeli przed nazwą kolumny. Kolumna może mieć dowolny typ danych obsługiwany przez SQL Server. Jednak kolumny obliczeniowe nie mogą być używane w tym kontekście.
Typy zwracane
logiczny
Uwagi
UPDATE() zwraca TRUE niezależnie od tego, czy próba INSERT lub UPDATE zakończyła się sukcesem.
Aby sprawdzić działanie INSERT lub UPDATE dla więcej niż jednej kolumny, określ osobną klauzulę UPDATE(column) po pierwszej. Wiele kolumn można również testować pod kątem akcji INSERT lub UPDATE, używając COLUMNS_UPDATED. Zwraca to wzór bitowy wskazujący, które kolumny zostały wstawione lub zaktualizowane.
IF UPDATE zwraca wartość TRUE w akcjach INSERT, ponieważ kolumny mają wstawione wartości jawne lub wartości implicitne (NULL).
Uwaga / Notatka
Klauzula IF UPDATE(column) działa tak samo jak IF, IF... ELSE, lub WHILE i można użyć BEGIN... KONIEC bloku. Więcej informacji można znaleźć w Języku kontroli przepływu (Transact-SQL).
UPDATE(column) może być używany w dowolnym miejscu wewnątrz ciała wyzwalacza Transact-SQL.
Jeśli wyzwalacz zostanie zastosowany do kolumny, wartość UPDATED zwróci się jako true lub 1, nawet jeśli wartość kolumny pozostaje niezmieniona. Jest to projektowe, a wyzwalacz powinien implementować logikę biznesową, która określa, czy operacja wstawiania/aktualizowania/usuwania jest dozwolona, czy nie.
Przykłady
Poniższy przykład tworzy wyzwalacz, który wyświetla komunikat klientowi, gdy ktoś próbuje zaktualizować kolumny StateProvinceID tabeli or PostalCode w tabeli Address .
USE AdventureWorks2022;
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
Zobacz też
COLUMNS_UPDATED (Transact-SQL)
UTWÓRZ TRIGGER (Transact-SQL)