UPDATE - Fungsi Pemicu (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceDatabase SQL di Microsoft Fabric

Mengembalikan nilai Boolean yang menunjukkan apakah atau INSERTUPDATE upaya dilakukan pada kolom tabel atau tampilan tertentu. UPDATE() digunakan di mana saja di dalam badan Transact-SQL INSERT atau UPDATE pemicu untuk menguji apakah pemicu harus melakukan tindakan tertentu.

Konvensi sintaks transact-SQL

Sintaks

UPDATE ( column )   

Argumen

column
Adalah nama kolom yang akan diuji tindakan atau UPDATE atau INSERT Karena nama tabel ditentukan dalam klausa ON pemicu, jangan sertakan nama tabel sebelum nama kolom. Kolom bisa dari jenis data apa pun yang didukung oleh SQL Server. Namun, kolom komputasi tidak dapat digunakan dalam konteks ini.

Jenis Kembalian

Boolean

Keterangan

UPDATE() mengembalikan TRUE terlepas dari apakah upaya atau INSERTUPDATE berhasil.

Untuk menguji INSERT tindakan atau UPDATE untuk lebih dari satu kolom, tentukan klausa (kolom) terpisah UPDATEsetelah yang pertama. Beberapa kolom juga dapat diuji atau INSERTUPDATE tindakan dengan menggunakan COLUMNS_UPDATED. Ini mengembalikan pola bit yang menunjukkan kolom mana yang disisipkan atau diperbarui.

IF UPDATE mengembalikan nilai TRUE dalam INSERT tindakan karena kolom memiliki nilai eksplisit atau nilai implisit (NULL) yang disisipkan.

Catatan

Klausa IF UPDATE(kolom) berfungsi sama dengan IF, IF... ELSE, atau WHILE dan dapat menggunakan klausul BEGIN... Blok END. Untuk informasi selengkapnya, lihat Bahasa Kontrol Aliran (Transact-SQL).

UPDATE(kolom) dapat digunakan di mana saja di dalam badan pemicu Transact-SQL.

Jika pemicu berlaku untuk kolom, UPDATED nilai akan kembali sebagai true atau 1, meskipun nilai kolom tetap tidak berubah. Ini secara desain, dan pemicu harus menerapkan logika bisnis yang menentukan apakah operasi sisipkan/perbarui/hapus diizinkan atau tidak.

Contoh

Contoh berikut membuat pemicu yang mencetak pesan ke klien saat siapa pun mencoba memperbarui StateProvinceID kolom PostalCode atau Address tabel.

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  

Lihat Juga

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