Вставить триггер в таблицу с дополнительным постоянным столбцом в новую таблицу?

Я работал над базой данных, которая состоит из двух имен схем: передняя и резервная. Где в одной таблице имя:

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
Другие вопросы по тегам