Запускать триггер, только если значение FALSE - PullRequest
0 голосов
/ 06 мая 2020

После некоторых проб и ошибок, вместе с вашей помощью, я придумал следующий код для своего триггера:

ALTER TRIGGER   [dbo].[SnapChapas] 
ON              [dbo].[Tab_Inventarios_Chapas] 
AFTER UPDATE
AS 
BEGIN
  SET NOCOUNT ON;

  IF UPDATE(Ativo)
  DECLARE @IDInventario as INT
  SET @IDInventario = (SELECT ID FROM inserted)

  INSERT 
  INTO          Tab_Inventarios_Chapas_Snap_Banco
  (             ID_Tab_Chapas,
                FormatoL,
                Comprimento1,
                Comprimento2,
                Largura1,
                Largura2,
                Quantidade,
                ID_Tab_Inventarios_Chapas
  )
  SELECT        ID,
                FormatoL,
                Comprimento1,
                Comprimento2,
                Largura1,
                Largura2,
                Quantidade,
                @IDInventario
  FROM          Tab_Chapas

Приведенный выше код работает. Моя проблема здесь: у меня есть столбец с именем "ACTIVE" в [dbo].[Tab_Inventarios_Chapas]. Мне нужен триггер для запуска только , если обновленное значение FALSE.

PS: My Application только обновляет одну строку в время; нет возможности обновить более одного.

1 Ответ

0 голосов
/ 07 мая 2020

Благодаря @JeroenMostert я смог найти ответ.

Вот мой последний код:

    ALTER TRIGGER [dbo].[SnapChapas] 
       ON  [dbo].[Tab_Inventarios_Chapas] 
   AFTER UPDATE
AS 
BEGIN
    -- SET NOCOUNT ON added to prevent extra result sets from
    -- interfering with SELECT statements.
    SET NOCOUNT ON;

Declare @ativo as bit
Set @ativo = (select Ativo from inserted)
if UPDATE(Ativo) and @ativo='False'
declare @IDInventario as int
Set @IDInventario = (select ID from inserted)
insert into Tab_Inventarios_Chapas_Snap_Banco (ID_Tab_Chapas,FormatoL,Comprimento1,Comprimento2,Largura1,Largura2,Quantidade,ID_Tab_Inventarios_Chapas)
select ID,FormatoL,Comprimento1,Comprimento2,Largura1,Largura2,Quantidade,@IDInventario
from Tab_Chapas

END

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...