Compartilhar via


UPDATE() (Transact-SQL)

Retorna um valor booleano 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.

Ícone de vínculo de tópicoConvençõ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çãoObservaçã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.

ObservaçãoObservação

No SQL Server 2000, UPDATE() não detecta alterações em colunas timestamp. Para essas colunas, uma cláusula IF UPDATE() no corpo de um gatilho retorna FALSE, independentemente do fato de as colunas forem atualizadas. No SQL Server 2008 e no SQL Server 2005, UPDATE() detecta alterações em colunas timestamp. Uma cláusula IF UPDATE() no corpo de um gatilho DML retornará TRUE se estas colunas forem atualizadas.

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 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