@kapitoly
учусь

Как обеспечить целостность базы данных ms sql server?

Для примера возьмем 2 простые таблицы с Продуктами (Products) и Поставщиками (Vendors).
bae1b417f28744648927a7a5c7b6818e.JPG

Нужно, чтобы не разрешалось удалить Поставщикa (Vendor) если с его id есть запись в Products.

Я знаю, что это можно сделать при помощи диаграммы. (ставим первичный ключ на Поставщика и внешний ключ на Продукт).

На основании определения диаграмм:
Диаграммы - это компоненты БД, которые блокируют удаление записей из первичных таблиц если существуют связанные с ними записи во вторичных таблицах. Следовательно, диаграммы предотвращают нарушение целостности данных. В SQL Server диаграммы создаются при помощи мастера диаграмм


Я выполняю этот шаг, но при удалении записи из Products не выходит никакого предупреждения и вообще ничего запись просто удаляется. Может быть надо сделать что-то еще? (Про триггеры я знаю, но вроде диаграмма должна быть пригодной и без триггеров)
  • Вопрос задан
  • 610 просмотров
Решения вопроса 1
mahoho
@mahoho
Full stack certified PHP developer.
Используйте внешний ключ, он специально для этого предназначен:
ALTER TABLE Products ADD FOREIGN KEY(vendorId) REFERENCES Vendors(id);
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы