Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ошибка в Коде триггера? срабатывает только ELSE / 2 сообщений из 2, страница 1 из 1
21.10.2002, 17:32:59
    #32060395
tolkay
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в Коде триггера? срабатывает только ELSE
CREATE TRIGGER [dbo].[Resources_Del] ON [dbo].[RESOURCES]
FOR DELETE
AS
DECLARE @FL as int

Select @FL=PROCS.FLAG_P
FROM (PROCS INNER JOIN
RES_PROC ON PROCS.ID = RES_PROC.ID_PROC) INNER JOIN
Deleted ON RES_PROC.ID_RES = Deleted.ID
begin
if @FL=0
begin
Print @FL
Print 'Удаление False Отменено'
RollBack Transaction
end
else
begin
Print @FL
Print 'Удаление True Отменено'
RollBack Transaction
end
end
...
Рейтинг: 0 / 0
21.10.2002, 17:44:29
    #32060402
Александр Спелицин
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка в Коде триггера? срабатывает только ELSE
Если запрос
Код: plaintext
1.
  Select *
  FROM (PROCS INNER JOIN RES_PROC ON PROCS.ID = RES_PROC.ID_PROC) INNER JOIN Deleted ON RES_PROC.ID_RES = Deleted.ID 

не выдаст ни одной записи, то значение @FL не изменится!!!
Т.е @FL будет равно Null.
Попробуйте так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
  
  Select @FL =  0 

  Select @FL = PROCS.FLAG_P 
  FROM (PROCS INNER JOIN RES_PROC ON PROCS.ID = RES_PROC.ID_PROC) INNER JOIN Deleted ON RES_PROC.ID_RES = Deleted.ID 
  if @FL Is Null or @FL =  0 
...
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ошибка в Коде триггера? срабатывает только ELSE / 2 сообщений из 2, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]