powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / foreign key, как с ним бороться?
8 сообщений из 8, страница 1 из 1
foreign key, как с ним бороться?
    #32005885
spb2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Существуют три таблицы. Одна из таблиц является связующей между двумя другими. В связующей таблице ключом назначены id двух колонок в которых сидят данные из первой и второй таблицы, как FK. В связующей таблице прописан тригер на удаление записей если в какой либо таблице удаляется строка. Пока не были назначены FK все работало нормально тригеры удаляли записи из связующей если удалялась запись из какой либо таблицы. После того как были подвешены FK удаление не проходит.
Спасибо всем за дельные советы.
...
Рейтинг: 0 / 0
foreign key, как с ним бороться?
    #32005886
spb2000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Сори. Тригеры не на связующей таблице, а на двух других. Еще раз сори.
...
Рейтинг: 0 / 0
foreign key, как с ним бороться?
    #32005888
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если ты используешь SQL2K, то поставь foreign key с каскадным удалением. Тогда триггеры можно будет совсем выкинуть.
...
Рейтинг: 0 / 0
foreign key, как с ним бороться?
    #32005889
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А совместить триггеры с foreign key, наверное, не получится. Потому что при каких-либо операциях с данными сначала проверяются constraint'ы, а только потом срабатывают триггеры. При включенном foreign key дело до триггера просто не дойдет.
...
Рейтинг: 0 / 0
foreign key, как с ним бороться?
    #32005909
Slava
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По теории FK и PK необходимы для поддрежания ссылочной целостности данных. При организации ссылочной целостности методами диограмм (FK и PK) связь между таблицами можно настраивать на каскадное удаление, обновление и что-то еще...
Так что используя связь PK -> FK тригеры становятся ненужными.
...
Рейтинг: 0 / 0
foreign key, как с ним бороться?
    #32007128
Фотография Алексей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Так как же все таки настроить систему?
Из ответов ничего не понятно. Где поставить каскадное удаление?
...
Рейтинг: 0 / 0
foreign key, как с ним бороться?
    #32007138
GreenSunrise
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда создаешь foreign key, добавь ключевое слово cascade в references.
В BOL см. топик "Cascading Referential Integrity Constraints"
...
Рейтинг: 0 / 0
foreign key, как с ним бороться?
    #32007164
Фотография Garya
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей, каскадное обновление/удаление можно указать на Foreign key только в версии MS SQL Server 2000, а ты не уточнил, какую версию используешь. Если у тебя более ранняя, то придется использовать триггеры. Но в этом случае придется отказаться от использования Foreign keys.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / foreign key, как с ним бороться?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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