Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL databáze v Microsoft Fabric
Vrací Booleovskou hodnotu, která ukazuje, zda byl na určeném sloupci tabulky nebo pohledu proveden pokus o INSERT nebo UPDATE. UPDATE() se používá kdekoli uvnitř těla spouště INSERT nebo UPDATE Transact-SQL k ověření, zda by spouštěč měl provést určité akce.
Syntaxe
UPDATE ( column )
Arguments
sloupce
Je název sloupce, který testuje buď akci INSERT, nebo UPDATE. Protože název tabulky je uveden v klauzuli ON spouštěče, neuvádějte název tabulky před název sloupce. Sloupec může být jakéhokoliv datového typu podporovaného SQL Serverem. Nicméně v tomto kontextu nelze použít vypočítané sloupce.
Návratové typy
logický
Poznámky
UPDATE() vrací TRUE bez ohledu na to, zda je pokus o INSERT nebo UPDATE úspěšný.
Pro testování akce INSERT nebo UPDATE pro více než jeden sloupec zadejte samostatnou klauzuli UPDATE(column) za první. Více sloupců lze také testovat na akce INSERT nebo UPDATE pomocí COLUMNS_UPDATED. To vrací bitový vzor, který ukazuje, které sloupce byly vloženy nebo aktualizovány.
IF UPDATE vrací hodnotu TRUE v akcích INSERT, protože sloupce obsahují buď explicitní hodnoty, nebo implicitní (NULL) hodnoty.
Poznámka:
Klauzule IF UPDATE(column) funguje stejně jako IF, IF... ELSE, nebo WHILE a můžete použít BEGIN... KONEC bloku. Pro více informací viz Jazyk řízení toku (Transact-SQL).
UPDATE(sloupec) lze použít kdekoli uvnitř těla Transact-SQL spouštěče.
Pokud se spouštěč vztahuje na sloupec, hodnota UPDATED se vrátí jako true nebo 1, i když hodnota sloupce zůstane nezměněna. Jedná se o návrh a trigger by měl implementovat obchodní logiku, která určuje, jestli je operace vložení, aktualizace/odstranění povolená nebo ne.
Examples
Následující příklad vytváří spouštěč, který vytiskne zprávu klientovi, když se někdo pokusí aktualizovat StateProvinceID sloupce nebo PostalCode tabulky 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
Viz také
COLUMNS_UPDATED (Transact-SQL)
VYTVOŘIT SPOUŠŤ (Transact-SQL)