UPDATE - Funzioni di attivazione (Transact-SQL)

Si applica a:SQL ServerDatabase SQL di AzureIstanza gestita di SQL di AzureDatabase SQL in Microsoft Fabric

Restituisce un valore booleano che indica se è stato effettuato un INSERT tentativo o UPDATE su una colonna specificata di una tabella o di una vista. UPDATE() viene utilizzato ovunque all'interno del corpo di un Transact-SQL INSERT o UPDATE di un trigger per testare se il trigger debba eseguire determinate azioni.

Convenzioni relative alla sintassi Transact-SQL

Sintassi

UPDATE ( column )   

Argomenti

column
È il nome della colonna da testare per un'azione INSERT o UPDATE . Poiché il nome della tabella viene specificato nella clausola ON del trigger, non includere il nome della tabella prima del nome della colonna. Il tipo di dati della colonna può essere uno dei tipi supportati da SQL Server. In questo contesto non è tuttavia possibile utilizzare colonne calcolate.

Tipi restituiti

Booleano

Osservazioni:

UPDATE() restituisce VERO indipendentemente dal fatto che un INSERT tentativo o UPDATE o abbia successo.

Per testare un'azione INSERT o UPDATE per più di una colonna, specifica una clausola separata UPDATE(colonna) dopo la prima. Più colonne possono anche essere testate per INSERT azioni UPDATE usando COLUMNS_UPDATED. In questo caso viene restituito uno schema di bit che indica le colonne inserite o aggiornate.

IF UPDATE restituisce il valore TRUE nelle INSERT azioni perché le colonne hanno inseriti valori espliciti o valori impliciti (NULL).

Nota

La clausola SE UPDATE(colonna) funziona allo stesso modo di un IF, SE... ELSE, oppure WHILE e può usare la clausola BEGIN... FINE del blocco. Per altre informazioni, vedere Elementi del linguaggio per il controllo di flusso (Transact-SQL).

UPDATE(colonna) può essere usato ovunque all'interno del corpo di un grilletto Transact-SQL.

Se si applica un trigger a una colonna, il valore UPDATED verrà restituito come true o 1, anche se il valore della colonna rimane invariato. Si tratta di un comportamento predefinito e il trigger deve implementare la logica di business che determina se l'operazione di inserimento/aggiornamento/eliminazione è consentita o meno.

Esempi

Nell'esempio seguente viene creato un trigger che stampa un messaggio nel client in corrispondenza di un tentativo di aggiornamento della la colonna StateProvinceID o PostalCode della tabella 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  

Vedi anche

COLUMNS_UPDATED (Transact-SQL)
CREATE TRIGGER (Transact-SQL)