Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Правило удаления связанных полей одной таблицы 
:(
    Опции темы
-Mikle-
Дата 8.5.2009, 11:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 1
Всего: 59



В продолжение предыдущей моей темы...

Есть таблица Category (ID PRIMARY IDENTITY(1,1) NOT NULL, ParentID NULL, Title)
У нее есть связь с другой таблицей по ID. У этой связи я использую правило удаления "Каскадом". То есть удаляя запись из Category, удаляются все записи из связанной таблицы. Это работает.

Еще у таблицы есть связь с самой собой с полем ParentID. Но я не могу создать для этой связи никакое правило.
Management Studio у меня слетел и не хочет переустанавливаться, поэтому я использую сейчас встроенные в VS средства. Там нельзя выполнить SQL запрос ALTER, но можно соответствующее правило задать через UI. Так вот это свойство (где задается правило), для этой связи, не доступно. Видимо потому что что-то не так.

Я просто хочу чтоб удалаяя одну категорию, удалялись бы все ее подкатегории всех уровней вложенности. Не хотелось бы рекурсивным циклом это делать.

Использую, на клиентской стороне EF. Может быть его как-то можно настроить?

Добавлено через 2 минуты и 34 секунды
Чувствую что щас придет PashaPash и наколдует  smile  решение   smile 


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
-Mikle-
Дата 9.5.2009, 08:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Невидимка Vingrad'а
***


Профиль
Группа: Экс. модератор
Сообщений: 1672
Регистрация: 22.6.2003
Где: Казахстан, Астана

Репутация: 1
Всего: 59



Попробовал сделать тригер на удаление
Код

ALTER TRIGGER DeleteTrigger ON dbo.[Category]
FOR DELETE /* INSERT, UPDATE, DELETE */
AS
BEGIN
    set nocount on
    DECLARE @id int
    select @id=id from deleted
    delete from [Category] where ParnetID = @id
END


Тригер срабатывает (я пробовал другое тело для проверки) но удалять не хочет. Если удалять запись запросом, то ошибка что "ограничение same table reference". Это из-за того, что у записи есть связанные потомки. Вот если бы можно было тригер запустить до физического удаления записи, то есть сначала удалить потомков, а потом саму запись. Или временно отключить ограничение. В общем вопрос пока не решен.


--------------------
Если тебе плюют в спину, значит ты впереди...
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
stab
mr.DUDA
Exception

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, stab, mr.DUDA, Exception.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Базы данных под .NET | Следующая тема »


 




[ Время генерации скрипта: 0.0405 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.