Форум программистов, компьютерный форум, киберфорум
Microsoft SQL Server
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 11.02.2016
Сообщений: 4

Триггер DELETE

15.02.2016, 10:18. Показов 1135. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пытаюсь создать триггер на событие DELETE в таблице Titleauthor, который удаляет соответствующие записи в таблицах Authors и Titles. Триггер должен правильно обрабатывать как единичные удаления из таблицы Titleauthor, так и массовые. Написал вот так:

T-SQL
1
2
3
4
5
6
7
8
9
10
11
12
create trigger Books.del_test
on titleauthor
for delete
as
delete titles
from titles, deleted
where titles.title_id = deleted.title_id
        
delete authors
from authors, deleted
where authors.au_id = deleted.au_id
GO
Что я сделал не правильно?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.02.2016, 10:18
Ответы с готовыми решениями:

Триггер DELETE
Здравствуйте! Задача звучит следующим образом (работаю с AdventureWorks): Имеется таблица JobCandidate и JobCandidateHistory. Необходимо...

Триггер after delete
Привет. Написал триггер after delete. Он будет работать, только если мы удаляем построчно или при массовом удалении тоже будет...

Триггер AFTER DELETE
IF OBJECT_ID ('deleteClient') IS NOT NULL ...

8
34 / 30 / 10
Регистрация: 24.11.2014
Сообщений: 188
Записей в блоге: 12
15.02.2016, 10:25
А в чем именно проблема?
Насколько я понимаю, вы триггер для поддержки ссылочной целостности написали? Если да, то это правильнее делать с помощью внешних ключей (FOREIGN KEY) с соответствующими настройками.
0
0 / 0 / 0
Регистрация: 11.02.2016
Сообщений: 4
15.02.2016, 10:37  [ТС]
На сколько я понимаю Триггер будет удалять все данные...
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
15.02.2016, 10:44
Цитата Сообщение от Fedor_K Посмотреть сообщение
На сколько я понимаю Триггер будет удалять все данные...
Как это все??
Только те, для которых нашлись соответствующие записи в deleted.
Привычнее и эстетически правильно было бы отказаться от запятой в пользу JOIN.
0
3614 / 2135 / 756
Регистрация: 02.06.2013
Сообщений: 5,169
15.02.2016, 10:58
Цитата Сообщение от Fedor_K Посмотреть сообщение
Что я сделал не правильно?
Если коротко, то все.
Рассмотрите ситуацию, когда для какого-то автора в Titleauthor две записи и удаляется одна из них.
0
34 / 30 / 10
Регистрация: 24.11.2014
Сообщений: 188
Записей в блоге: 12
15.02.2016, 11:42
У вас от Authors к TitleAuthors связь типа один ко многим?
0
0 / 0 / 0
Регистрация: 11.02.2016
Сообщений: 4
15.02.2016, 13:29  [ТС]
Да 1 ко многим...
0
1116 / 761 / 183
Регистрация: 27.11.2009
Сообщений: 2,272
15.02.2016, 13:48
T-SQL
1
2
3
4
5
6
7
delete t
from titles t join deleted d on t.title_id=d.title_id
where not exists(select * from titleauthor ta where ta.title_id=d.title_id);
        
delete a
from authors a join deleted d on a.au_id=d.au_id
where not exists(select * from titleauthor ta where ta.au_id=d.au_id);
???
0
34 / 30 / 10
Регистрация: 24.11.2014
Сообщений: 188
Записей в блоге: 12
15.02.2016, 15:26
Немного странная логика удалять мастера (Author) при отсутствии деталей (TitleAuthor). Не припоминаю такого случая в своей практике.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.02.2016, 15:26
Помогаю со студенческими работами здесь

Instead of delete триггер
Есть таблица Hardware с первичным ключом IDHardware и таблица Orders с внешними ключами IDHardware1, IDHardware2, IDHardware3. Для таблицы...

Триггер DELETE
Здравствуйте, Задача звучит следующим образом Имеется таблица RKniga и RArhiv. Необходимо создать триггер AvtoPerenos, который должен...

Триггер insert delete
помогите допилить триггер, начал только изучать sql, как сделать что бы он сработал еще на удаление! при удалении срабатывает на первом...

Не работает триггер after delete
/*Удаляю все пациентов, которые не оплатили лечение */ create trigger client_money_delete1 on Прием after delete as if (exists...

Триггер delete, фиксирование каждой записи
Написал триггер, который записывает все удаления в таблице в отдельную таблицу. create trigger . on . after delete as begin ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru