Online Documentation for SQL Manager for SQL server
Свойства внешнего ключа
На вкладке Foreign Key задайте основные свойства внешнего ключа.
Имя ключа задается в поле Foreign Key Name. Автоматически система создает имя, которое состоит из имени выбранной таблицы и суффикса _fk. Из раскрывающегося списка Table выберите таблицу, в которой будет создан внешний ключ.
Важно: Это поле доступно для редактирования только при создании ключа.
- Enabled - если этот флажок установлен, то внешний ключ включен,
- Check Existing Data - проверка существующих данных осуществляется в том случае если этот флажок установлен,
- Not for replication - при выполнении агентом репликации операций вставки обновления или удаления ограничение внешнего ключа не устанавливается, если установлен этот флажок.
Чтобы добавить поля таблицы в ключ переместите их из списка доступных полей - Available Columns в список выбранных полей - Included Columns.
Далее из раскрывающегося списка Foreign table выберите внешнюю таблицу. Переместите поля из списка доступных полей - Available Columns в список выбранных полей - Included Columns.
Ниже укажите действия, производимые при обновлении и удалении для соблюдения ссылочной целостности данных.
Ссылочная целостность сохраняет определенные связи между таблицами при добавлении или удалении строк.
С помощью переключателя Update action выберите действие, которое будет выполняться при обновлении данных в таблице:
- No Action - Без действия.
- Cascade - Каскадное обновление. Операция обновления значения первичного ключа, на которое указывают внешние ключи в существующих строках других таблиц. При каскадном обновлении все значения внешних ключей обновляются так, чтобы они соответствовали новому значению первичного ключа.
- Set Null - Указывает, что при попытке обновить ключевое значение, на которое ссылаются внешние ключи в строках других таблиц, все значения, составляющие эти внешние ключи, должны быть изменены на NULL. Чтобы выполнялось это ограничение, все столбцы внешних ключей целевой таблицы должны допускать значение NULL.
- Set Default - Указывает, что при попытке обновить ключевое значение, на которое ссылаются внешние ключи в строках других таблиц, все значения, составляющие эти внешние ключи, должны быть изменены на значение по умолчанию. Чтобы выполнялось это ограничение, для всех столбцов внешних ключей целевой таблицы должно быть определено значение по умолчанию. Если столбец допускает значение NULL и множество значений по умолчанию не задано явно, NULL становится неявным значением по умолчанию для данного столбца.
Переключатель Delete action позволяет установить следующие действия, выполняемые при удалении строки, содержащей первичный ключ:
- No Action - Без действия.
- Каскадное удаление - Cascade - операция удаления строки, содержащей значение первичного ключа, на которую указывают внешние ключи в существующих строках других таблиц. При каскадном удалении удаляются также все строки, значение внешнего ключа которых указывает на удаленное значение первичного ключа.
- Set Null - указывает, что при попытке удалить строку с ключом, на которую ссылаются внешние ключи в строках других таблиц, все значения, составляющие эти внешние ключи, должны быть изменены на NULL. Чтобы выполнялось это ограничение, все столбцы внешних ключей целевой таблицы должны допускать значение NULL.
- Set Default - указывает, что при попытке удалить строку с ключом, на которую ссылаются внешние ключи в строках других таблиц, все значения, составляющие эти внешние ключи, должны быть изменены на значения по умолчанию. Чтобы выполнялось это ограничение, для всех столбцов внешних ключей целевой таблицы должно быть определено значение по умолчанию. Если столбец допускает значение NULL и множество значений по умолчанию не задано явно, NULL становится неявным значением по умолчанию для данного столбца.