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

Pemicu masukkan nilai lama- nilai yang diperbarui

Di pemicu Anda, Anda memiliki dua tabel semu yang tersedia, Inserted dan Deleted , yang berisi nilai-nilai tersebut.

Dalam kasus UPDATE, Deleted tabel akan berisi nilai-nilai lama, sedangkan Inserted tabel berisi nilai baru.

Jadi jika Anda ingin mencatat ID, OldValue, NewValue di pemicu Anda, Anda harus menulis sesuatu seperti:

CREATE TRIGGER trgEmployeeUpdate
ON dbo.Employees AFTER UPDATE
AS 
   INSERT INTO dbo.LogTable(ID, OldValue, NewValue)
      SELECT i.ID, d.Name, i.Name
      FROM Inserted i
      INNER JOIN Deleted d ON i.ID = d.ID

Pada dasarnya, Anda bergabung dengan Inserted dan Deleted pseudo-tabel, ambil ID (yang sama, saya kira, dalam kedua kasus), nilai lama dari Deleted tabel, nilai baru dari Inserted tabel, dan Anda menyimpan semuanya di LogTable



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Entity Framework 6 GUID sebagai kunci utama:Tidak dapat memasukkan nilai NULL ke kolom 'Id', kolom tabel 'FileStore' tidak mengizinkan nol

  2. Memasukkan dan mengubah data dari tabel SQL

  3. Cara menyisipkan baris di Tabel SQL Server dengan Mengedit Baris Tabel GUI - Tutorial SQL Server / TSQL Bagian 101

  4. Apakah mungkin untuk menetapkan batas waktu untuk kueri SQL di Microsoft SQL Server?

  5. Cara Memformat Angka dengan Koma di SQL Server