Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a:SQL Server
Database 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)