UPDATE - Fungsi Pemicu (Transact-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

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

Konvensi sintaks transact-SQL

Sintaksis

UPDATE ( column )   

Catatan

Untuk melihat sintaks Transact-SQL untuk SQL Server 2014 (12.x) dan versi yang lebih lama, lihat Dokumentasi versi sebelumnya.

Argumen

column
Adalah nama kolom yang akan diuji untuk tindakan INSERT atau UPDATE. 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 INSERT atau UPDATE berhasil.

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

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

Catatan

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

UPDATE(column) dapat digunakan di mana saja di dalam isi 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 Address atau PostalCode 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)
BUAT PEMICU (Transact-SQL)