Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к:SQL Server
База данных
SQL AzureУправляемый экземпляр
SQL AzureБаза данных SQL в Microsoft Fabric
Возвращает булево значение, указывающее, была INSERTUPDATE ли выполнена попытка или на определённом столбце таблицы или представления. UPDATE() используется в любой части корпуса Transact-SQL INSERT или UPDATE триггера для проверки, должен ли триггер выполнять определённые действия.
Соглашения о синтаксисе Transact-SQL
Синтаксис
UPDATE ( column )
Аргументы
column
Это название столбца для проверки действия INSERT или UPDATE . Так как имя столбца указано в предложении триггера ON, не ставьте имя таблицы перед именем столбца. Столбец может иметь любой тип данных, поддерживаемый SQL Server. Однако вычисляемые столбцы не могут использоваться в данном контексте.
Типы возвращаемых данных
Логический
Замечания
UPDATE() возвращает TRUE независимо от того, успешна INSERT ли попытка или UPDATE .
Чтобы проверить действие INSERT или UPDATE для более чем одного столбца, укажите отдельное UPDATE(столбцо) предложение после первой. Несколько столбцов также могут быть протестированы на INSERT действия UPDATE или действия с помощью COLUMNS_UPDATED. В результате возвращается битовый шаблон, который указывает на то, какие столбцы были вставлены или обновлены.
IF UPDATE возвращает значение TRUE в INSERT действиях, потому что столбцы имеют либо явные, либо неявные (NULL) значения.
Примечание.
Предложение IF UPDATE(столбца) функционирует так же, как IF, IF... ELSE или WHILE и может использовать BEGIN... END блока. Дополнительные сведения см. в разделе Язык управления потоком (Transact-SQL).
UPDATE(столбца) может использоваться в любом месте внутри корпуса Transact-SQL триггера.
Если триггер применяется к столбцу, значение UPDATED будет возвращаться в виде true или 1, даже если значение столбца остается неизменным. Это нормальное поведение, и триггер должен реализовывать бизнес-логику, которая определяет, допустимы ли операции вставки, обновления и удаления.
Примеры
Следующий пример создает триггер, который выдает сообщение клиенту при попытке обновить столбец StateProvinceID или PostalCode в таблице 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
См. также
COLUMNS_UPDATED (Transact-SQL)
CREATE TRIGGER (Transact-SQL)