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

Задействане на SQL актуализиране само когато колоната е променена

Имате два начина за вашия въпрос:

1- Използвайте командата за актуализиране във вашия Trigger.

ALTER TRIGGER [dbo].[tr_SCHEDULE_Modified]
   ON [dbo].[SCHEDULE]
   AFTER UPDATE
AS BEGIN
    SET NOCOUNT ON;
    IF UPDATE (QtyToRepair) 
    BEGIN
        UPDATE SCHEDULE 
        SET modified = GETDATE()
           , ModifiedUser = SUSER_NAME()
           , ModifiedHost = HOST_NAME()
        FROM SCHEDULE S INNER JOIN Inserted I 
        ON S.OrderNo = I.OrderNo and S.PartNumber = I.PartNumber
        WHERE S.QtyToRepair <> I.QtyToRepair
    END 
END

2- Използвайте Съединяване между вмъкната таблица и изтритата таблица

ALTER TRIGGER [dbo].[tr_SCHEDULE_Modified]
   ON [dbo].[SCHEDULE]
   AFTER UPDATE
AS BEGIN
    SET NOCOUNT ON;    

    UPDATE SCHEDULE 
    SET modified = GETDATE()
       , ModifiedUser = SUSER_NAME()
       , ModifiedHost = HOST_NAME()
    FROM SCHEDULE S 
    INNER JOIN Inserted I ON S.OrderNo = I.OrderNo and S.PartNumber = I.PartNumber
    INNER JOIN Deleted D ON S.OrderNo = D.OrderNo and S.PartNumber = D.PartNumber                  
    WHERE S.QtyToRepair <> I.QtyToRepair
    AND D.QtyToRepair <> I.QtyToRepair
END

Когато използвате команда за актуализиране за таблица SCHEDULE и Задайте QtyToRepair Колона към нова стойност, ако новата стойност е равна на старата стойност в един или няколко реда, решение 1 актуализира всички актуализирани редове в таблицата с график, но решение 2 актуализира само редовете на графика, чиято стара стойност не е равна на нова стойност.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Подреждане на опашка в OneWay WCF съобщения с помощта на Windows Service и SQL Server

  2. Как да ИЗБЕРЕТЕ ОТ съхранената процедура

  3. Регулярни изрази в SQL Server

  4. Как мога да планирам работа за ежедневно изпълнение на SQL заявка?

  5. Избройте акаунтите, свързани с пощенски профил на база данни в SQL Server