UPDATE() (Transact-SQL)
Retorna um valor booliano que indica se foi feita uma tentativa de INSERT ou UPDATE em uma coluna especificada de uma tabela ou exibição. UPDATE() é utilizado em qualquer lugar no corpo de um gatilho Transact-SQL INSERT ou UPDATE para testar se o gatilho deve executar determinadas ações.
Convenções de sintaxe Transact-SQL
Sintaxe
UPDATE ( column )
Argumentos
- column
É o nome da coluna a ser testada para uma ação INSERT ou UPDATE. Como o nome da tabela está especificado na cláusula ON do gatilho, não inclua o nome da tabela antes do nome da coluna. A coluna pode ser de qualquer tipo de dados cujo suporte é oferecido pelo SQL Server. Entretanto, não é possível usar colunas computadas nesse contexto.
Tipos de retorno
Booliano
Comentários
UPDATE() retorna TRUE, independentemente de uma tentativa de INSERT ou UPDATE ter êxito.
Para testar uma ação INSERT ou UPDATE para mais de uma coluna, especifique uma cláusula UPDATE(column) separada após a primeira. Também é possível testar várias colunas para ações INSERT ou UPDATE usando COLUMNS_UPDATED. Isto retorna um padrão de bits que indica quais colunas foram inseridas ou atualizadas.
IF UPDATE retorna o valor TRUE em ações INSERT porque as colunas tiverem valores explícitos ou implícitos (NULL) inseridos.
Observação |
---|
A cláusula IF UPDATE(column) funciona da mesma forma que uma cláusula IF, IF...ELSE ou WHILE, podendo usar o bloco BEGIN...END. Para obter mais informações, consulte Linguagem de controle de fluxo (Transact-SQL). |
UPDATE(column) pode ser usado em qualquer lugar no corpo de um gatilho Transact-SQL.
Exemplos
O exemplo a seguir cria um gatilho que imprime uma mensagem para o cliente quando qualquer pessoa tentar atualizar as colunas StateProvinceID ou PostalCode da tabela Address.
USE AdventureWorks2012;
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