Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Триггер? Что не так / 3 сообщений из 3, страница 1 из 1
02.04.2002, 07:08
    #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
02.04.2002, 07:19
    #32026724
GreenSunrise
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Триггер? Что не так
Простейший вариант -
delete from I_Addresses where AddresseeID in (select PersID from deleted)
Правда, конструкция "where AddresseeID in (...)" вызывает сомнения в скорости быстродействия на больших объемах.

А вообще всегда имейте в виду, что в таблицах inserted и deleted не обязательно одна запись. Триггер срабатывает на операцию в целом, а не построчно.
...
Рейтинг: 0 / 0
02.04.2002, 07:20
    #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
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Триггер? Что не так / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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