Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Сравнете изтритата и вмъкната таблица в SQL Server 2008

Не съм съвсем сигурен каква е целта ви, мисля, че може да е нещо подобно. Да кажем, че имаме таблица като тази:

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

и някаква таблица за проверка като тази:

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
);

След това създавате тригер:

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

Ето го.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Настройка на скриптове за поща на база данни

  2. Как да напишете главна първата буква на запис в SQL

  3. Как да създадете композитен външен ключ в SQL Server (пример за T-SQL)

  4. Преименувайте колоната на SQL Server 2008

  5. Репликацията на SQL Server 2008 е неуспешна с:процесът не може да изпълни „sp_replcmds“