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

Скрипты
CREATE TABLE [T1](
  [Key]     INT IDENTITY(1, 1) PRIMARY KEY,
  [Name]	NVARCHAR(50)
)

CREATE PROCEDURE [T2](
  [Key]     INT IDENTITY(1, 1) PRIMARY KEY,
  [Name]	NVARCHAR(50)
)


CREATE PROCEDURE [Options](
  [T1Key]	INT FOREIGN KEY REFERENCES [T1]([Key])
            ON DELETE CASCADE,
  [T2Key]	INT FOREIGN KEY REFERENCES [T2]([Key]),
  PRIMARY KEY ([T1Key], [T2Key])
)


Сейчас сделано так, что если удалять запись из таблицы T2 то возникнет исключение, если есть запись в таблице Options. Так и надо!

Как сделать, так чтобы при удалении записи из таблицы T1, удалялась запись в таблице Options (так и сделано) и при этом удалилась запись в таблице T2?

Я предполагаю, что при создании таблицы Options можно сделать условие такого удаления, но как ни знаю?! (триггер не предлогать)
28 янв 15, 13:08    [17182489]     Ответить | Цитировать Сообщить модератору
 Re: Каскадное удаление. Как сделать.  [new]
Glory
Member

Откуда:
Сообщений: 104751
igor888
Я предполагаю, что при создании таблицы Options можно сделать условие такого удаления, но как ни знаю?!

Каскадных удалений от потомков к предкам нет в природе
28 янв 15, 13:14    [17182547]     Ответить | Цитировать Сообщить модератору
 Re: Каскадное удаление. Как сделать.  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
igor888,

как это - "CREATE PROCEDURE"???
28 янв 15, 13:15    [17182554]     Ответить | Цитировать Сообщить модератору
 Re: Каскадное удаление. Как сделать.  [new]
igor888
Guest
iap
igor888,

как это - "CREATE PROCEDURE"???



это то понятно! Может есть "условия" при создании таблицы?
28 янв 15, 13:26    [17182653]     Ответить | Цитировать Сообщить модератору
 Re: Каскадное удаление. Как сделать.  [new]
Glory
Member

Откуда:
Сообщений: 104751
igor888
это то понятно! Может есть "условия" при создании таблицы?

Успокойтесь. Нет условий, противоречащих элементартной логике.
Удаление потомка не может вызывать каскадное удаление предков.
Иначе придется что-то делать и другими потомками этого предка

Сообщение было отредактировано: 28 янв 15, 13:29
28 янв 15, 13:29    [17182692]     Ответить | Цитировать Сообщить модератору
 Re: Каскадное удаление. Как сделать.  [new]
Lepsik
Member

Откуда: glubinka
Сообщений: 4256
[quot Glory]
igor888
Удаление потомка не может вызывать каскадное удаление предков.
Иначе придется что-то делать и другими потомками этого предка


Резать, резать к чертовой матери не дожидаясь перетонита! (C)
29 янв 15, 21:16    [17191921]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить