UPDATE - Auslöserfunktionen (Transact-SQL)

Gilt für:SQL ServerAzure SQL-DatenbankVerwaltete Azure SQL-InstanzSQL-Datenbank in Microsoft Fabric

Gibt einen booleschen Wert zurück, der angibt, ob ein INSERT oder UPDATE Versuch auf eine bestimmte Spalte einer Tabelle oder Ansicht unternommen wurde. UPDATE() wird überall im Körper eines Transact-SQL INSERT oder UPDATE Triggers verwendet, um zu testen, ob der Trigger bestimmte Aktionen ausführen sollte.

Transact-SQL-Syntaxkonventionen

Syntax

UPDATE ( column )   

Argumente

column
Ist der Name der Spalte, die entweder für eine INSERT oder UPDATE Aktion getestet werden soll. Da der Tabellenname in der ON-Klausel des Triggers angegeben ist, nehmen Sie den Tabellennamen nicht vor dem Spaltennamen in die Klausel auf. Die Spalte kann einen beliebigen Datentyp enthalten, der von SQL Server unterstützt wird. Berechnete Spalten können jedoch in diesem Kontext nicht verwendet werden.

Rückgabetypen

Boolean

Hinweise

UPDATE() gibt TRUE zurück, unabhängig davon, ob ein INSERT oder UPDATE Versuch erfolgreich ist.

Um eine INSERT oder UPDATE Aktion für mehr als eine Spalte zu testen, geben Sie eine separate UPDATE(Spalten-)Klausel nach der ersten an. Mehrere Spalten oder Aktionen können ebenfalls mit COLUMNS_UPDATED getestet INSERTUPDATE werden. Das hierbei zurückgegebene Bitmuster gibt an, welche Spalten eingefügt oder aktualisiert wurden.

IF UPDATE gibt den TRUE-Wert in Aktionen INSERT zurück, da die Spalten entweder explizite oder implizite (NULL-)Werte eingefügt haben.

Hinweis

Die IF- UPDATE(Spalten-)Klausel funktioniert genauso wie ein IF, IF... ELSE- oder WHILE-Klausel und kann die BEGIN... ENDE des Blocks. Weitere Informationen finden Sie unter Sprachkonstrukte zur Ablaufsteuerung (Transact-SQL).

UPDATE(Säule) kann überall im Körper eines Transact-SQL-Triggers verwendet werden.

Wenn ein Trigger für eine Spalte gilt, wird der Wert UPDATED als true oder 1 zurückgegeben. Dies ist auch der Fall, wenn der Spaltenwert unverändert bleibt. Dies wurde mit Absicht so eingerichtet, und der Trigger sollte eine Geschäftslogik implementieren, die bestimmt, ob der Einfüge-/Update-/Löschvorgang zulässig ist oder nicht.

Beispiele

Das folgende Beispiel erstellt einen Trigger, der eine Meldung an den Client ausgibt, wenn jemand versucht, die StateProvinceID- oder PostalCode-Spalten der Address-Tabelle zu aktualisieren.

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  

Siehe auch

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