1. Написать DML триггер, который выполняется вместо добавления (INSERT) и изменения (UPDATE) для таблицы, содержащей перечень названий статей, который для каждой добавляемой (изменяемой) строки проверяет совпадения струтктуры добавляемого (изменяемого) названия статьи (не учитывая пробелы, разделяющие слова) с остальными названиями. В случае совпадения добавление (изменение) не происходит и генерируется сообщение об ошибке, уровень серъезности (severity) которой допускает ее обработку блоком TRY .. CATCH, с помощью команды RAISERROR. Аналогичный триггер написать для таблицы, содержащей перечень названий тезисов докладов на конференциях.
2. Написать DML триггер, который выполняется вместо добавления (INSERT) и изменения (UPDATE) для таблицы, содержащей информацию о личности (студентах), который при добавлении (изменении) очередной строки проверяет совпадение Ф.И.О. и даты рождения с остальными личностями. В случае их совпадения генерируется сообщение об ошибке, уровень серъезности (severity) которой допускает ее обработку блоком TRY .. CATCH, с помощью команды RAISERROR.
3. Написать DML триггер, который выполняется вместо удаления (DELETE) для таблицы, содержащей информацию о студентах, который не позволяет удалять строки этой таблицы. При попытке удаления генерируется сообщение об ошибке, уровень серъезности (severity) которой допускает ее обработку блоком TRY .. CATCH, с помощью команды RAISERROR.
4. Написать DML триггер, который выполняется после команд добавления (INSERT) и изменения (UPDATE) для таблицы, содержащей информацию об успеваемости студентов. Этот триггер после добавления (изменения) очередной строки таблицы должен проверять оценку и, если она неудовлетворительна, копировать сделанную запись в специальную таблицу (должна существовать), содержащую информацию о должниках. Если неудовлетворительная оценка по какому-либо предмету изменяется на положительную, то соответствующая запись из таблицы «должников» удаляется.
5. Написать DML триггер, который выполняется после команд добавления (INSERT) и изменения (UPDATE) для таблицы, содержащей информацию о студентах-«должниках». Этот триггер после добавления (изменения) очередной строки должен проверить количество отрицательных оценок («долгов») для данного студента и, если оно становится равным 3, записать информацию о студенте и его «долгах» в таблицу, содержащую информацию о студентах-«должниках», подлежащих отчислению (должна существовать, структуру разработать самостоятельно). В последнем случае триггер должен сгенеририровать сообщение об ошибке, уровень серъезности (severity) которой допускает ее обработку блоком TRY .. CATCH, с помощью команды RAISERROR.
6. Написать DML триггер, который выполняется после команды удаления (DELETE) для таблицы, содержащей информацию о студентах-«должниках». Этот триггер должен проверить наличие информации о студенте, который пересдал «долг», в таблице, содержащей информацию о студентах-«должниках», подлежащих отчислению и, в случае обнаружения, удалить ее.
7. Написать DDL триггер, который при попытке удаления любой из таблиц, созданных при выполнении лабораторных работ №3 и №5 производит откат транзакции.
8. Написать DDL триггер, который при попытке удаления ограничения PRIMARY KEY для любой из таблиц, созданных при выполнении лабораторных работ №3 и №5 производит откат транзакции.
9. Написать DDL триггер, который при попытке удаления ограничения FOREIGN KEY для имеющих его таблиц, созданных при выполнении лабораторных работ №3 и №5 производит откат транзакции.