Доброго времени суток! У меня появилась следующая проблема - триггер не проверяет условие и всегда возвращяет одно и то же значение | Код | USE [Biblioteka] GO ALTER TRIGGER Udalenie /*Триггер, который запрещает выписывать читателя из библиотеки, если у него на руках книги*/ ON Chitatel FOR DELETE AS BEGIN /*Объявление временной переменной для сохранения удаляемого читателя*/ DECLARE @Bilet varchar(50) /*Получение значения удаляемого читателя*/ SELECT @Bilet=Deleted.Num_chit_bl FROM Chitatel, Deleted WHERE Chitatel.Num_chit_bl=Deleted.Num_chit_bl /*Проверка, есть ли у читателя книги на руках*/ IF EXISTS (SELECT* FROM Vudacha WHERE Num_chit_bl=@Bilet AND Data_vozvrat is null) BEGIN ROLLBACK TRANSACTION PRINT 'Нельзя удалить этого читателя, так как у него есть несданные книги.' END else PRINT 'Удален ' END
|
вот структурв таблиц
 вот еще насторожило при выполнении запроса | Код | delete from Chitatel where Num_chit_bl='1006p'
|
(1006p-номер читательского билета, который попадает под условие Data_vozvrat is not null, т.е. должен быть удален), на который должен откликнутся триггер не появляется значение
не могу понять почему все таки он не работает как следует. Буду благадарен за любую помощь. |