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 INSERT byl pokus o nebo UPDATE proveden na určeném sloupci tabulky nebo pohledu. UPDATE() se používá kdekoli uvnitř těla Transact-SQL INSERT nebo UPDATE spouště k ověření, zda by spouštěč měl provádět určité akce.
Syntaxe
UPDATE ( column )
Arguments
sloupce
Je název sloupce, který testuje buď INSERT akci 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 INSERT pokus or UPDATE úspěšný.
Pro testování INSERT akce nebo UPDATE pro více než jeden sloupec specifikujte samostatnou UPDATE(sloupcovou) klauzuli po té první. Více sloupců lze také testovat pro INSERT nebo UPDATE akce pomocí COLUMNS_UPDATED. To vrací bitový vzor, který ukazuje, které sloupce byly vloženy nebo aktualizovány.
IF UPDATE vrací hodnotu TRUE v INSERT akcích, protože sloupce obsahují buď explicitní hodnoty, nebo implicitní (NULL) hodnoty.
Poznámka:
Klauzule IF UPDATE(sloupec) 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ě.
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)
CREATE TRIGGER (Transact-SQL)