Вставить триггер в таблицу с дополнительным постоянным столбцом в новую таблицу?
Я работал над базой данных, которая состоит из двух имен схем: передняя и резервная. Где в одной таблице имя:
front.Details
studID SemID GPA
100 1 4
200 2 3
Другое имя таблицы:
backup.DetailsV
studID DEPT SemID GPA
Вывод в таблице резервного копирования. Детали V должны выглядеть следующим образом:
studID DEPT SemID GPA
100 1 1 4
200 1 2 3
100 2 1 4
200 2 2 3
Как я могу создать триггер для таблицы Details для вставки в таблицу DetailsV дважды с идентификатором dept 1 и 2?
1 ответ
Чтобы продолжить мысль Дэмиена, если единственная причина иметь таблицу DetailsV - это генерировать этот вывод, вы можете легко сделать это с помощью представления. Если это просто чтение данных, хранимая процедура не знает или не заботится, является ли источник таблицей или представлением.
Select studID, 1 as Dept, SemID, GPA
From front.Details
UNION ALL
Select studID, 2 as Dept, SemID, GPA
From front.Details
Вы бы сохраняли таблицу резервного копирования только в том случае, если вам нужно было вести историю данных, проходящих через таблицу front.Details, или если вам нужно было манипулировать этими данными, прежде чем сообщать об этом. Если это действительно то, что вам нужно, запрос триггера очень похож, но вместо обращения к таблице вы используете специальную [вставленную] таблицу для получения новых значений.
Select studID, 1 as Dept, SemID, GPA
From inserted
UNION ALL
Select studID, 2 as Dept, SemID, GPA
From inserted