Compartilhar via


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() é usado em qualquer lugar no corpo de um gatilho INSERT ou UPDATE do Transact-SQL para testar se o gatilho deve executar determinadas ações.

Aplica-se a: SQL Server (SQL Server 2008 até a versão atual), Banco de dados SQL do Windows Azure (versão inicial até a versão atual).

Ícone de vínculo de tópico Convenções da 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.

Dica

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

Consulte também

Referência

COLUMNS_UPDATED (Transact-SQL)

CREATE TRIGGER (Transact-SQL)