Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / foreign key, как с ним бороться? / 8 сообщений из 8, страница 1 из 1
18.05.2001, 17:57
    #32005885
spb2000
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foreign key, как с ним бороться?
Существуют три таблицы. Одна из таблиц является связующей между двумя другими. В связующей таблице ключом назначены id двух колонок в которых сидят данные из первой и второй таблицы, как FK. В связующей таблице прописан тригер на удаление записей если в какой либо таблице удаляется строка. Пока не были назначены FK все работало нормально тригеры удаляли записи из связующей если удалялась запись из какой либо таблицы. После того как были подвешены FK удаление не проходит.
Спасибо всем за дельные советы.
...
Рейтинг: 0 / 0
18.05.2001, 18:03
    #32005886
spb2000
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foreign key, как с ним бороться?
Сори. Тригеры не на связующей таблице, а на двух других. Еще раз сори.
...
Рейтинг: 0 / 0
18.05.2001, 18:47
    #32005888
GreenSunrise
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foreign key, как с ним бороться?
Если ты используешь SQL2K, то поставь foreign key с каскадным удалением. Тогда триггеры можно будет совсем выкинуть.
...
Рейтинг: 0 / 0
18.05.2001, 19:11
    #32005889
GreenSunrise
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foreign key, как с ним бороться?
А совместить триггеры с foreign key, наверное, не получится. Потому что при каких-либо операциях с данными сначала проверяются constraint'ы, а только потом срабатывают триггеры. При включенном foreign key дело до триггера просто не дойдет.
...
Рейтинг: 0 / 0
21.05.2001, 07:13
    #32005909
Slava
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foreign key, как с ним бороться?
По теории FK и PK необходимы для поддрежания ссылочной целостности данных. При организации ссылочной целостности методами диограмм (FK и PK) связь между таблицами можно настраивать на каскадное удаление, обновление и что-то еще...
Так что используя связь PK -> FK тригеры становятся ненужными.
...
Рейтинг: 0 / 0
07.06.2001, 09:08
    #32007128
Алексей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foreign key, как с ним бороться?
Так как же все таки настроить систему?
Из ответов ничего не понятно. Где поставить каскадное удаление?
...
Рейтинг: 0 / 0
07.06.2001, 09:46
    #32007138
GreenSunrise
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foreign key, как с ним бороться?
Когда создаешь foreign key, добавь ключевое слово cascade в references.
В BOL см. топик "Cascading Referential Integrity Constraints"
...
Рейтинг: 0 / 0
07.06.2001, 14:39
    #32007164
Garya
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
foreign key, как с ним бороться?
Алексей, каскадное обновление/удаление можно указать на Foreign key только в версии MS SQL Server 2000, а ты не уточнил, какую версию используешь. Если у тебя более ранняя, то придется использовать триггеры. Но в этом случае придется отказаться от использования Foreign keys.
...
Рейтинг: 0 / 0
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / foreign key, как с ним бороться? / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]