powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Триггер? Что не так
3 сообщений из 3, страница 1 из 1
Триггер? Что не так
    #32026720
sergeyk
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Повесил на таблицу сл триггер:
CREATE TRIGGER [DeletePersAddress] ON [I_Persons]
FOR DELETE
AS
DECLARE @PersID uniqueidentifier
SELECT @PersID = PersID FROM deleted
DELETE FROM I_Addresses WHERE AddresseeID = @PersID

Удаляю любую запись по какому-нибудь условию. Все замечательно - удаляется и из второй таблицы.
Теперь пытаюсь удалить несколько записей, например DELETE FROM I_Persons WHERE LastName LIKE 'A%',
триггер не отрабатывает. Это так и должно быть?
Как сделать так, что бы можно было удалить несколько записей одновременно, или тут триггер лучше не использовать?
...
Рейтинг: 0 / 0
Триггер? Что не так
    #32026724
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Простейший вариант -
delete from I_Addresses where AddresseeID in (select PersID from deleted)
Правда, конструкция "where AddresseeID in (...)" вызывает сомнения в скорости быстродействия на больших объемах.

А вообще всегда имейте в виду, что в таблицах inserted и deleted не обязательно одна запись. Триггер срабатывает на операцию в целом, а не построчно.
...
Рейтинг: 0 / 0
Триггер? Что не так
    #32026725
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CREATE TRIGGER [DeletePersAddress] ON [I_Persons]
FOR DELETE
AS
DELETE I_Addresses FROM I_Addresses a INNER JOIN deleted d ON d.PersID = a.AddresseeID


PS
inserted и deleted - это ТАБЛИЦЫ и работать с ними надо как с таблицами, содержащими несколько записей.
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Триггер? Что не так
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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