Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Buat pemicu yang memasukkan nilai ke dalam tabel baru saat kolom diperbarui

Sesuatu seperti ini harus melakukan apa yang Anda butuhkan. Anda akan memiliki INSERT pernyataan di bawah masukkan nilai yang menunjukkan operasi yang dilakukan ke dalam MyLogTable .

CREATE TRIGGER [dbo].[TRIG_MyTable]
ON [dbo].[MyTable]
AFTER INSERT, UPDATE

AS 

DECLARE @INS int, @DEL int

SELECT @INS = COUNT(*) FROM INSERTED
SELECT @DEL = COUNT(*) FROM DELETED

IF @INS > 0 AND @DEL > 0 
BEGIN

    -- a record got updated, so log accordingly.

    INSERT INTO MyLogTable
    SELECT 'New Values', getdate() FROM INSERTED

    INSERT INTO MyLogTable
    SELECT 'Old Values', getdate() FROM DELETED

END

ELSE 
BEGIN

    -- a new record was inserted.

    INSERT INTO MyLogTable
    SELECT 'Insert', getdate() FROM INSERTED

END

Jika mau, Anda juga dapat menambahkan kolom dari INSERTED dan DELETED ke tabel log Anda juga jika Anda ingin menangkap nilai kolom aktual yang dimasukkan atau diperbarui.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server - Jumlah Kumulatif yang direset ketika 0 ditemui

  2. Bagaimana Memetakan Kolom Input dan Output secara dinamis di SSIS?

  3. Konversi gagal saat mengonversi dari string karakter ke pengenal unik

  4. referensi yang belum terselesaikan ke objek [INFORMATION_SCHEMA].[TABLES]

  5. Tambahkan kolom ke tabel yang ada dan beri nomor unik di MS SQL Server