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

Откуда:
Сообщений: 241
есть иерархия из трех узлов. каждый узел в отдельной таблице, на таблицах есть FK id - parentId.
задача смержить данные выполнив все три условия мерж:

WHEN NOT MATCHED BY TARGET
    THEN INSERT

WHEN MATCHED 
    THEN UPDATE 

WHEN NOT MATCHED BY SOURCE
    THEN DELETE


собсно, проблема по известным причинам с удалением.
есть какой-нибудь бест практис по такой ситуации?
спасибо.
7 июн 12, 15:20    [12682700]     Ответить | Цитировать Сообщить модератору
 Re: merge и FK  [new]
Klopovnik
Member

Откуда: Рига
Сообщений: 39
dmitry stakanov,

на 100% не уверен, а каскадный делит на ключ добавить нет возможности?
то есть удалять данные из всех таблиц, которые "мешают"... или я что-то не понимаю?
7 июн 12, 15:25    [12682743]     Ответить | Цитировать Сообщить модератору
 Re: merge и FK  [new]
dmitry stakanov
Member

Откуда:
Сообщений: 241
Klopovnik,

не хотелось бы делать каскадирование.

спасибо!
7 июн 12, 16:11    [12683137]     Ответить | Цитировать Сообщить модератору
 Re: merge и FK  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
dmitry stakanov
не хотелось бы делать каскадирование
Да даже если захотелось бы, то не вышло.
7 июн 12, 16:12    [12683146]     Ответить | Цитировать Сообщить модератору
 Re: merge и FK  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
Хотя, если у вас связь между разными таблицами, то заработает. Не хотите - удаляйте в правильном порядке руками.
7 июн 12, 16:14    [12683164]     Ответить | Цитировать Сообщить модератору
 Re: merge и FK  [new]
dmitry stakanov
Member

Откуда:
Сообщений: 241
Гавриленко Сергей Алексеевич,

да три отдельыне таблицы.

table1
id1

table2
id2 table1.id1 (parent)

table3
id3 table2.id2 (parent)

и как я понимаю последний вариант снимать FK, этого хотелось бы еще меньше, чем каскадирования...
7 июн 12, 16:20    [12683218]     Ответить | Цитировать Сообщить модератору
 Re: merge и FK  [new]
Гавриленко Сергей Алексеевич
Member

Откуда:
Сообщений: 37254
dmitry stakanov
Гавриленко Сергей Алексеевич,

да три отдельыне таблицы.

table1
id1

table2
id2 table1.id1 (parent)

table3
id3 table2.id2 (parent)

и как я понимаю последний вариант снимать FK, этого хотелось бы еще меньше, чем каскадирования...
Нет. Удалять сначала из table3, потом из table2, потом из table1.
7 июн 12, 16:21    [12683232]     Ответить | Цитировать Сообщить модератору
 Re: merge и FK  [new]
dmitry stakanov
Member

Откуда:
Сообщений: 241
Гавриленко Сергей Алексеевич,

это я знаю. похоже придется так и делать.
спасибо.
7 июн 12, 16:23    [12683249]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить