Внешний ключ — это столбец или группа столбцов в таблице реляционной базы данных, которая обеспечивает связь между данными в двух таблицах. Он действует как перекрестная ссылка между таблицами, поскольку ссылается на первичный ключ другой таблицы, тем самым устанавливая связь между ними.
Большинство таблиц в системах реляционных баз данных придерживаются концепции целостности по ссылкам (referential integrity). В сложных базах данных могут быть добавлены другие таблицы, имеющие внешние ключи ссылающиеся на уже присутсвующие первичные ключи хранимых таблиц , таким образом поддерживая целостность по ссылкам между ними. Ответственность за поддержание целостности по ссылкам несет сам SQL Server. Он не позволяет удалить строку из tabX с первичным ключом р01 , если tabY имеет внешний ключ р01 , ссылающийся на р01 из tabX.
Пример
CREATE TABLE orders (
order _no INT PRIMARY KEY,
user_id INT REFERENCES users(user_id),
product_sku INT REFERENCES books(product_sku),
);
Мы не можем удалить пользователя из "users" у которого есть заказы (хоть 1) в таблице "orders" и мы не можем ввести заказ, для которого в таблице "users" нет записи с значение user_id которое мы бы хотели ввести в "orders".