2014-11-10 2 views
0

У меня есть требование, когда триггер должен срабатывать, когда какая-либо строка вставлена ​​или удалена из таблицы FAB, которая содержит num как уникальное значение. и в зависимости от этого значения num другая таблица должна обновляться.Триггер - после примера вставки и удаления

например.

FAB table 

num code trs 
10 A2393 80 
20 B3445 780 

Reel table 

reelnr num use flag 
340345 10 500 1 

когда Num 10 из FAB таблицы удаляется (или любой новый Num Вставляется), триггер уволят и должен проверить таблицу катушки, которая содержит это значение NUM и дать reelnr.

Как это сделать?

+0

, что он должен делать, когда проверка проходит/потерпит неудачу? –

+0

В 'SQL SERVER' есть что-то, называемое' Inserted' и 'Deleted', которые можно использовать для извлечения вновь вставленных или удаленных записей. SQL Server автоматически создает и управляет этими таблицами. Вы можете использовать эти «временные таблицы хранения данных» для проверки влияния определенных модификаций данных и установки условий для «действий триггера DML» –

ответ

0

вы можете использовать вставленную & удаленных таблиц в SQL

Эти две таблиц особого вида таблицы, которые доступны только в области видимости триггеров. Если вы попытаетесь использовать эти таблицы вне области триггеров, вы получите сообщение об ошибке.

Inserted: Эти таблицы используются для отслеживания любых новых записей, которые вставляются в таблицу. Предположим, что в таблице вставлено шесть строк, тогда эта таблица будет состоять из всех шести вставленных строк.

Deleted : Эти таблицы используются для отслеживания всей удаленной записи из ваших таблиц. Последние строки удаления будут отслеживаться в этой таблице.

Для вставки:

CREATE TRIGGER TR_AUDIT_Insert 
ON Reel_table 
FOR INSERT 
AS 
BEGIN 
     INSERT INTO Reel_table (reelnr, num, use, flag) 
     SELECT 
      reelnr, 
      num, 
      use, 
      flag   
     FROM 
      INSERTED 
END 

Для Delete:

CREATE TRIGGER TR_AUDIT_Delete 
ON Product 
FOR DELETED 
AS 
BEGIN 
     INSERT INTO Reel_table (reelnr, num, use, flag) 
     SELECT 
      reelnr, 
      num, 
      use, 
      flag   
     FROM 
      DELETED 
END 

Примечание: Я не знаю, откуда эти три reelnr, использование флага значений, получают Итак, пожалуйста, измените это согласно вашему n ПЕД.

Это формат триггеров, которые мы обычно используем. Вы также можете сделать это с помощью одного триггера также я не знаю, что ваше точное требование Если вы хотите достичь только одного триггера, то вы можете обратиться по этой ссылке: Refer

+0

Это немного помогло. Я изменил строку для вставки и удалил ее после «Вставить», «Удалить». В любом случае спасибо –