Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Felügyelt Azure SQL-példány
SQL-adatbázis a Microsoft Fabricben
Olyan Boole-értéket ad vissza, amely jelzi, hogy történt-e INSERT vagy UPDATE kísérlet egy tábla vagy nézet meghatározott oszlopán. A UPDATE() bármely helyen a Transact-SQL INSERT vagy UPDATE trigger testén belül használatos annak tesztelésére, hogy a triggernek végrehajtania kell-e bizonyos műveleteket.
Transact-SQL szintaxis konvenciók
Szemantika
UPDATE ( column )
Arguments
oszlop
Az oszlop neve, amelyet INSERT vagy UPDATE műveletet tesztelünk. Mivel a tábla neve a trigger ON klauzulájában van megadva, ne tegyük fel a táblanevet az oszlopnév előtt. Az oszlop bármilyen adattípusú , amelyet az SQL Server támogat. Azonban a kiszámított oszlopok ebben a kontextusban nem használhatók.
Visszatérési típusok
logikai
Megjegyzések
A UPDATE() TRUE értéket ad vissza, függetlenül attól, hogy az INSERT vagy UPDATE próbálkozás sikeres.
Ha több oszlopra szeretnél tesztelni egy INSERT vagy UPDATE műveletet, az első után külön UPDATE(oszlop) záradást adjunk be. Több oszlopot is tesztelhetünk INSERT vagy UPDATE műveletekre COLUMNS_UPDATED használatával. Ez egy bitmintát ad vissza, amely megmutatja, mely oszlopokat helyezték be vagy frissítettek.
Az IF UPDATE az INSERT műveletekben adja vissza a TRUE értéket, mert az oszlopok vagy explicit vagy implicit (NULL) értékeket tartalmaznak.
Megjegyzés:
Az IF UPDATE(oszlop) klauzula ugyanúgy működik, mint az IF, IF... ELSE, vagy WHILE klauzulat, és használhatja a BEGIN... END blokk. További információért lásd: Flow-of-Flow Language (Transact-SQL).
UPDATE(oszlop) a Transact-SQL trigger testén bárhol használható.
Ha egy oszlopra aktiválódik a trigger, az UPDATED érték akkor is visszatér, mint true vagy 1, még akkor is, ha az oszlop értéke változatlan marad. Ez a kialakítás, és az eseményindítónak üzleti logikát kell implementálnia, amely meghatározza, hogy a beszúrási/frissítési/törlési művelet megengedett-e vagy sem.
Példák
A következő példa létrehoz egy triggert, amely üzenetet nyomtat a kliensnek, amikor valaki megpróbálja frissíteni a StateProvinceID tábla or PostalCode oszlopait 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
Lásd még:
COLUMNS_UPDATED (Transact-SQL)
LÉTREHOZNI TRIGGERET (Transact-SQL)