Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Devolve um valor booleano que indica se foi feita uma tentativa INSERT ou UPDATE numa coluna especificada de uma tabela ou vista. UPDATE() é usado em qualquer parte do corpo de um gatilho Transact-SQL INSERT ou UPDATE para testar se o gatilho deve executar certas ações.
Transact-SQL convenções de sintaxe
Sintaxe
UPDATE ( column )
Arguments
coluna
É o nome da coluna para testar uma ação INSERT ou UPDATE. Como o nome da tabela está especificado na cláusula ON do disparador, não inclua o nome da tabela antes do nome da coluna. A coluna pode ser de qualquer tipo de dado suportado pelo SQL Server. No entanto, colunas calculadas não podem ser usadas neste contexto.
Tipos de devolução
booleano
Observações
UPDATE() devolve TRUE independentemente de uma tentativa INSERT ou UPDATE ser bem-sucedida.
Para testar uma ação INSERT ou UPDATE para mais do que uma coluna, especifique uma cláusula UPDATE(column) separada após a primeira. Múltiplas colunas também podem ser testadas para ações INSERT ou UPDATE usando COLUMNS_UPDATED. Isto devolve um padrão de bits que indica quais as colunas inseridas ou atualizadas.
IF UPDATE devolve o valor TRUE nas ações INSERT porque as colunas têm valores explícitos ou valores implícitos (NULL) inseridos.
Observação
A cláusula IF UPDATE(coluna) funciona da mesma forma que um IF, SE... ELSE, ou WHILE e pode usar a cláusula BEGIN... FIM do bloco. Para mais informações, consulte Linguagem de Controlo do Fluxo (Transact-SQL).
UPDATE(column) pode ser usado em qualquer parte do corpo de um gatilho Transact-SQL.
Se um gatilho for aplicado a uma coluna, o UPDATED valor retornará como true ou 1, mesmo que o valor da coluna permaneça inalterado. Isso é por design, e o gatilho deve implementar uma lógica de negócios que determine se a operação de inserção/atualização/exclusão é permitida ou não.
Examples
O exemplo seguinte cria um gatilho que imprime uma mensagem para o cliente quando alguém tenta atualizar as StateProvinceID colunas or PostalCode da Address tabela.
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