Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Триггер на удаление  [new]
zhez
Member

Откуда:
Сообщений: 256
Добрый день. Нужен триггер на удаление. написал так, но он работает не корректно, т.е. удаляет не все записи.

CREATE TRIGGER del_z ON [dbo].[z1]
FOR DELETE
AS
delete from z2
where z2.z_id=(select top 1 id from deleted)

Пример был такой: В таблице z1:
id
1
2
3
4
В таблице z2:
id z_id
1 1
2 1
3 2
4 2
5 3
6 3
7 3

При удалении delete from z1 результат такой:
В таблица z1 пустая? а z2:
id z_id
3 2
4 2
5 3
6 3
7 3

Подскажите что не так?
22 апр 12, 20:33    [12453470]     Ответить | Цитировать Сообщить модератору
 Re: Триггер на удаление  [new]
Geep
Member

Откуда: Москва
Сообщений: 975
Всё так. Работает так как написано.
22 апр 12, 20:35    [12453477]     Ответить | Цитировать Сообщить модератору
 Re: Триггер на удаление  [new]
invm
Member

Откуда: Москва
Сообщений: 9836
Сами написали top 1 и удивляетесь, что одна запись удаляется?
22 апр 12, 20:36    [12453479]     Ответить | Цитировать Сообщить модератору
 Re: Триггер на удаление  [new]
zhez
Member

Откуда:
Сообщений: 256
Но если не писать топ 1 ошибку выкидывает. А как написать чтобы соответственно остальные тоже удалялись?
22 апр 12, 20:39    [12453487]     Ответить | Цитировать Сообщить модератору
 Re: Триггер на удаление  [new]
Geep
Member

Откуда: Москва
Сообщений: 975
например так:
where z2.z_id in (select id from deleted)
22 апр 12, 20:43    [12453495]     Ответить | Цитировать Сообщить модератору
 Re: Триггер на удаление  [new]
zhez
Member

Откуда:
Сообщений: 256
Спасибо, работает
22 апр 12, 20:52    [12453522]     Ответить | Цитировать Сообщить модератору
 Re: Триггер на удаление  [new]
Mnior
Member

Откуда: Кишинёв
Сообщений: 6724
zhez
Спасибо, работает
Самое прискорбное, что "work now" это единственный показатель у многих.
Освойте же синтаксис наконец:
DELETE	Z2
FROM	     Deleted	D
	JOIN dbo.z2	Z2 ON Z2.Z_ID = D.ID
Geep, а чукча пяйсатель или не читатель?
23 апр 12, 20:30    [12459360]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить