Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

So sánh bảng đã xóa và được chèn trong SQL Server 2008

Tôi không chắc lắm, mục tiêu của bạn là gì, tôi nghĩ nó có thể là như thế này. Giả sử chúng ta có một bảng như thế này:

CREATE TABLE Product
(
     ID      INT                   PRIMARY KEY,
     Name    NVARCHAR(100)         NOT NULL,
     Price   DECIMAL(10,2)         NOT NULL
);

và một số bảng kiểm tra như sau:

CREATE TABLE ProductAudit
(
     AuditID      INT                   IDENTITY PRIMARY KEY, 
     ProductID    INT                   NOT NULL
     OldName      NVARCHAR(100)         NULL,
     OldPrice     DECIMAL(10,2)         NULL,
     NewName      NVARCHAR(100)         NULL,
     NewPrice     DECIMAL(10,2)         NULL
);

Sau đó, bạn tạo một trình kích hoạt:

CREATE TRIGGER TR_AUDIT
ON Product
FOR INSERT, UPDATE, DELETE
AS
BEGIN
       INSERT INTO ProductAudit (ProductID, OldName, OldPrice, NewName, NewPrice)
       SELECT 
           COALESCE(I.ID, D.ID),
           D.Name,
           D.Price,
           I.Name,
           I.Price
       FROM 
           INSERTED I FULL OUTER JOIN DELETED D ON I.ID = D.ID;
END
GO

Bạn đã có nó.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kích thước được sử dụng với NVARCHAR có quan trọng không?

  2. Chuyển đổi thời gian thập phân thành giờ và phút

  3. Phân trang trong SQL Server bằng cách sử dụng OFFSET / FETCH

  4. SQL:tìm kiếm một chuỗi trong mỗi cột varchar trong cơ sở dữ liệu

  5. Cách nhập tệp JSON vào bảng SQL Server