Форум программистов, компьютерный форум, киберфорум
Базы данных
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
Askhat

Каскадное удаление на MS SQL 7.0

24.07.2007, 00:55. Показов 2406. Ответов 6
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Мож кто знает как реализовать каскадное удаление средствами MS SQL 7.0? Имеется в виду, что есть две таблицы одна из которых привяза к другой. Если удалять запись из родительской таблицы то надо также удалять соответствующие записи из подчиненной таблицы.
Пробовал писать триггер FOR DELETE, но он выполняется только после самого удаления записей, и поэтому до него дело не доходит, так как возникает ошибка целостности данных.
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
24.07.2007, 00:55
Ответы с готовыми решениями:

Каскадное удаление записей SQL SERVER 7.0
Товарищи, Знающие!!! Как средствами SQL сделать так, чтобы при удалении записи в главной таблице, удалялись записи в подчиненной...

access sql. Создание связи, каскадное обновление и удаление
Create table tblFlights ( integer primary key, integer , date, date, date, CONSTRAINT FKRace FOREIGN KEY(Рейс_id)...

Каскадное удаление
Доброго времени суток! Проблема следующая, использую MySQL Workbench 6.0 визуально создаю БД, связи между таблицами, устанавливаю on update...

6
AiK
24.07.2007, 01:56
Не лучше ли ограничить прямой доступ к таблицам и использовать хранимые процедуры?
0 / 0 / 0
Регистрация: 20.03.2007
Сообщений: 21
24.07.2007, 22:14
Навряд ли такое может быть. Скорее всего, триггер написан неправильно, он не срабатывает, и поэтому вы получаете ошибку ссылочной целостности.
0
0 / 0 / 0
Регистрация: 15.05.2007
Сообщений: 59
25.07.2007, 09:59
Для того,что-бы делать каскадное удаление, триггер FOR DELETE надо цеплять к родительской таблице. И В этом тригере надо удалять связанные записи из дочерней таблицы.
Вот пример для родительской Project и дочерней User2Project:
SQL
1
2
3
4
5
6
7
8
9
10
11
12
CREATE TRIGGER tD_Project ON Project FOR DELETE AS
/* DELETE trigger on Project */
BEGIN
  DECLARE  @errno   INT,
           @errmsg  VARCHAR(255)
    DELETE User2Project
      FROM User2Project,deleted
      WHERE
        User2Project.ProjectID = deleted.ProjectID
    RETURN
END
GO
0
AiK
25.07.2007, 12:40
Да, ребятки. Стыдно за вас.
Цитирую Books Online:
If constraints exist on the trigger table, they are checked prior to trigger execution. If either PRIMARY KEY or FOREIGN KEY constraints are violated, the trigger is not executed (fired).

Это первая ремарка главы CREATE TRIGGER (T-SQL).

Поэтому если ну очень неймётся использовать триггер для каскадного удаления надо либо не использовать ссылочную целостность, либо организовывать её на тех же триггерах.
0 / 0 / 0
Регистрация: 15.05.2007
Сообщений: 59
25.07.2007, 16:31
...ну естественно, тригера надо писать так, что-бы они соотносились с ключами...
0
0 / 0 / 0
Регистрация: 25.07.2007
Сообщений: 39
25.07.2007, 17:02
Я бы рекомендовал делать каскадное удаление на хранимых, с тригерамми имхо проблемм возникает много(незабыв его обернуть в транзакцию)

PS
Да и вообще лучше все делать на хранимых
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.07.2007, 17:02
Помогаю со студенческими работами здесь

каскадное удаление
помогите пожалуйста с проблемой: нужно что бы при удалении записи из главной таблицы удалялись записи из подчиненной, запрос вроде...

Каскадное удаление
Как сделать каскадное удаление в главной и подчиненой таблицах? Имею такой кусок кода но он неверен: case Button of nbDelete: begin...

Каскадное удаление EF
Здравствуйте. Хочется понять, как в EF можно настроить каскадное удаление. Прочитал множество примеров. Но почему-то ничего не получается....

Каскадное удаление в БД
Помогите, пожалуйста, с удалением строк из таблицы. Выдает ошибку: "violated - child record found". Мне подсказали что тут необходимо...

Каскадное удаление
Добрый день! Имею дерево отделов и под оделов, храню все водной таблице. Хотелось бы при удалении родителя, что бы все дочерние ветки...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru