UPDATE() (Transact-SQL)

Retourne une valeur booléenne qui indique si une tentative d'opération INSERT ou UPDATE a été réalisée sur une colonne spécifiée d'une table ou d'une vue. UPDATE() est utilisé à n'importe quel endroit du corps d'un déclencheur INSERT ou UPDATE Transact-SQL pour tester si celui-ci doit exécuter certaines actions.

Icône Lien de rubriqueConventions de la syntaxe de Transact-SQL

Syntaxe

UPDATE ( column ) 

Arguments

column

Nom de la colonne à tester pour une action INSERT ou UPDATE. Étant donné que le nom de la table est spécifié dans la clause ON du déclencheur, n'incluez pas ce nom avant le nom de la colonne. La colonne peut être de n'importe quel type de données pris en charge par SQL Server 2005. Toutefois, les colonnes calculées ne peuvent pas être utilisées dans ce contexte.

Notes

UPDATE() retourne TRUE quelle que soit l'issue d'une tentative d'opération INSERT ou UPDATE.

Afin de tester une action INSERT ou UPDATE pour plusieurs colonnes, spécifiez une clause séparée UPDATE(column) après la première colonne. Plusieurs colonnes peuvent également être testées pour des actions INSERT ou UPDATE à l'aide de COLUMNS_UPDATED. Celui-ci retourne un modèle binaire qui indique quelles colonnes ont été insérées ou mises à jour.

IF UPDATE retourne la valeur TRUE dans les actions INSERT car des valeurs explicites ou implicites (NULL) sont insérées dans les colonnes.

ms187326.note(fr-fr,SQL.90).gifRemarque :
La clause IF UPDATE(colum) fonctionne de la même manière qu'une clause IF, IF...ELSE ou WHILE et peut utiliser le bloc BEGIN...END. Pour plus d'informations, consultez Langage de contrôle de flux (Transact-SQL).

UPDATE(column) peut être utilisé dans n'importe quel endroit du corps d'un déclencheur Transact-SQL.

ms187326.note(fr-fr,SQL.90).gifRemarque :
Dans SQL Server 2000, UPDATE() ne détecte pas les modifications apportées aux colonnes timestamp. Pour ces colonnes, qu'elles soient ou non mises à jour, une clause IF UPDATE() dans le corps d'un déclencheur retourne FALSE. Dans SQL Server 2005, UPDATE() détecte les modifications apportées aux colonnes timestamp. Si ces colonnes sont mises à jour, une clause IF UPDATE() dans le corps d'un déclencheur DML retourne TRUE.

Types de retour

Booléen

Exemple

L'exemple suivant crée un déclencheur qui envoie un message au client lorsqu'une personne essaie de mettre à jour les colonnes StateProvinceID ou PostalCode de la table Address.

USE AdventureWorks;
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

Voir aussi

Référence

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

Aide et Informations

Assistance sur SQL Server 2005