powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ошибка при создание триггера
5 сообщений из 5, страница 1 из 1
Ошибка при создание триггера
    #40011503
LiQuid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создал триггер:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
CREATE TRIGGER d_tbEmployee ON dbo.EMPLOYEE 

	FOR DELETE
AS 
	IF EXISTS (SELECT * FROM dbo.EMPLOYEE WHERE last_name='SMITH')

BEGIN 

	PRINT "ОШИБКА, нельзя удалить этого пользователя" 
	
	ROLLBACK TRANSACTION 

END


При запуске MS SQL Management Studio ругается:

Сообщение 128, уровень 15, состояние 1, процедура d_tbEmployee, строка 11
Имя "ОШИБКА, нельзя удалить этого пользователя" не разрешено в данном контексте. Допустимыми выражениями являются константы, константные выражения и (в некоторых контекстах) переменные. Имена столбцов не разрешены.

Почему?
...
Рейтинг: 0 / 0
Ошибка при создание триггера
    #40011504
waszkiewicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Ошибка при создание триггера
    #40011505
LiQuid
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
waszkiewicz,

Да, исправил и создал триггер.
Теперь когда удаляю запись с именем SMITH, триггер не срабатывает, т.е запись в легкую удалилась из БД.
Триггер не должен был запретить удаление?
...
Рейтинг: 0 / 0
Ошибка при создание триггера
    #40011507
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LiQuid,


LiQuid
waszkiewicz,

Да, исправил и создал триггер.
Теперь когда удаляю запись с именем SMITH, триггер не срабатывает, т.е запись в легкую удалилась из БД.
Триггер не должен был запретить удаление?
Кто знает, должен или не должен.

Нужно научиться отлаживать код.
Вставьте перед "IF EXISTS " строку, запрос:
Код: sql
1.
SELECT * FROM dbo.EMPLOYEE WHERE last_name='SMITH'
...
Рейтинг: 0 / 0
Ошибка при создание триггера
    #40011512
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Триггер AFTER (или FOR, что одно и то же) DELETE запускается после удаления.
Поэтому ваш IF определяет, что такой записи в таблице уже нет.
Так что логичнее проверять не саму таблицу, а deleted
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Ошибка при создание триггера
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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