Методические указания к практическим занятиям



бет34/52
Дата08.02.2022
өлшемі22,46 Mb.
#118386
түріМетодические указания
1   ...   30   31   32   33   34   35   36   37   ...   52
Байланысты:
МУ Базы данных SQL Server2012 Винокурова

Замечание: При срабатывании триггера вместо удаления записи создаёт- ся временная константа Deleted, содержащая имя таблицы, из которой должно было быть произведено удаление.
После срабатывания триггера из таблицы «Оценки» удаляется запись, у которой значение поля «Код студента» равно значению такого же поля у удаля- емой записи из таблицы «Студенты». Эту операцию выполняют следующие команды:

DELETE dbo.Оценки FROM Deleted


WHERE Deleted.[Код студента] = Оценки.[Код студента]

Затем удаляется запись из таблицы «Студенты», которую удаляли до сра- батывания триггера. Удаление выполняется следующими командами:


DELETE dbo.Студенты FROM Deleted


WHERE Deleted.[Код студента] = Студенты.[Код студента]

Рисунок 86 — Текст триггера «Удаление студента»

Выполните код, представленный на рисунке 86. В нижней части окна с кодом появится сообщение «Command(s) completed successfully.» («Выполнение команд успешно завершено.»).


Проверим, как работает триггер «Удаление студента». Для этого создайте новый запрос и в нём наберите следующий код (рис. 87):

Рисунок 87 — Текст запроса для проверки работы триггера «Удаление студента»

При срабатывании триггера сначала из таблицы «Оценки» удалятся все связанные с удаляемой записью записи, а затем удаляется сама удаляемая за- пись из таблицы «Студенты», при этом сохраняется целостность данных.


Замечание: Хотелось бы заметить, что без использования триггера «Уда- ление студента» нам бы не удалось удалить запись из таблицы «Студенты». Команда удаления была бы заблокирована диаграммой базы данных во избежа- ние нарушения целостности данных.


Достарыңызбен бөлісу:
1   ...   30   31   32   33   34   35   36   37   ...   52




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет