Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric
Geeft een Booleaanse waarde terug die aangeeft of er een INSERT- of UPDATE-poging is gedaan op een gespecificeerde kolom van een tabel of weergave. UPDATE() wordt overal in het lichaam van een Transact-SQL INSERT- of UPDATE-trigger gebruikt om te testen of de trigger bepaalde acties moet uitvoeren.
Transact-SQL syntaxis-conventies
Syntaxis
UPDATE ( column )
Arguments
kolom
Is de naam van de kolom die getest moet worden voor een INSERT- of UPDATE-actie. Omdat de tabelnaam is gespecificeerd in de ON-clausule van de trigger, moet de tabelnaam niet vóór de kolomnaam worden opgenomen. De kolom kan van elk datatype zijn dat door SQL Server wordt ondersteund. Echter, berekende kolommen kunnen in deze context niet worden gebruikt.
Retourtypen
Booleaan
Opmerkingen
UPDATE() geeft TRUE terug, ongeacht of een INSERT- of UPDATE-poging succesvol is.
Om te testen op een INSERT- of UPDATE-actie voor meer dan één kolom, specificeer je een aparte UPDATE(column)-clausule na de eerste. Meerdere kolommen kunnen ook worden getest op INSERT- of UPDATE-acties door gebruik te maken van COLUMNS_UPDATED. Dit geeft een bitpatroon terug dat aangeeft welke kolommen zijn ingevoegd of bijgewerkt.
IF UPDATE geeft de TRUE-waarde terug in INSERT-acties omdat de kolommen expliciete waarden of impliciete (NULL) waarden hebben ingevoegd.
Opmerking
De IF UPDATE(column)-clausule werkt hetzelfde als een IF, IF... ELSE, of WHILE-clausule en kan de BEGIN... EINDE blok. Voor meer informatie, zie Control-of-Flow Language (Transact-SQL).
UPDATE(kolom) kan overal in het lichaam van een Transact-SQL trigger worden gebruikt.
Als een trigger op een kolom van toepassing is, zal de UPDATED waarde terugkeren als true of 1, zelfs als de kolomwaarde ongewijzigd blijft. Dit is standaard en de trigger moet bedrijfslogica implementeren die bepaalt of de invoeg-/update-/verwijderbewerking is toegestaan of niet.
Voorbeelden
Het volgende voorbeeld creëert een trigger die een bericht naar de client afdrukt wanneer iemand probeert de StateProvinceID of PostalCode kolommen van de Address tabel bij te werken.
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