Поделиться через


Общие сведения о ссылочной целостности

Ссылочная целостность представляет собой систему правил, обеспечивающих допустимость связей между строками связанных таблиц и предотвращающих случайное удаление или изменение данных.

Примечание

Новая версия конструктора таблиц отображается для баз данных в формате SQL Server 2012. В этом разделе описывается старая версия конструктора таблиц, которая используется с базами данных в более ранних форматах SQL Server.

В новой версии определение таблицы можно изменить через графический интерфейс или непосредственно в области скриптов. Если вы используется графический интерфейс, определение таблицы автоматически обновляется в области скриптов. Чтобы применить код SQL в области скриптов, нажмите кнопку Обновить. Дополнительные сведения о новой версии см. в разделе Как создавать объекты базы данных с помощью конструктора таблиц.

Процедура

Ссылочная целостность подразумевает выполнение всех приведенных ниже условий:

  • Совпадающий столбец первичной таблицы является первичным ключом или имеет ограничение уникальности.

  • Связанные столбцы внешней таблицы имеют тот же тип и размер.

Для обеспечения ссылочной целостности необходимо соблюдение следующих правил:

  • В столбце внешнего ключа связанной таблицы можно вводить только значения, существующие в ее первичном ключе. В столбце внешнего ключа можно также задать значение NULL. Например, невозможно указать, что задание выдано сотруднику, для которого нет данных в таблице employee, но при этом можно указать, что определенному сотруднику задание не выдано. Для этого необходимо задать в столбце job_id таблицы employee пустое значение.

  • Прежде, чем удалять строку из таблицы первичного ключа, необходимо удалить совпадающие с ней строки из связанной таблицы. Например, нельзя удалить строку из таблицы jobs, если задание, представляемое данной строкой, задействует сотрудников, перечисленных в таблице employee.

  • В случае, когда строка связана с другими строками таблицы, значение первичного ключа таблицы не может быть изменено. Например, нельзя изменить значение job_id строки в таблице jobs, если в таблице employee существуют связанные с этим job_id сотрудники.

См. также

Ссылки

Диалоговое окно "Связи по внешним ключам"

Другие ресурсы

Общие сведения о работе со связями

Объекты базы данных