Таблица Players
CREATE TABLE [dbo].[Players] (
[Id] INT NOT NULL,
[Name] NCHAR (50) NOT NULL,
[Age] INT NOT NULL,
[Position] NCHAR (50) NOT NULL,
[TeamId] INT NULL,
PRIMARY KEY CLUSTERED ([Id] ASC),
CONSTRAINT [FK_Players_Teams] FOREIGN KEY ([TeamId]) REFERENCES [dbo].[Teams] ([Id]) ON DELETE SET NULL
);
Это ограничение, в данном случае внешний ключ. То есть значение поля TeamId ограничивается значениями содержащимися в поле Id, таблицы Teams, либо значением NULL.
CONSTRAINT - ключевое слово, которое указывает, что в данной секции описывается ограничение, которое налагается на данные в таблице, и которое будет проверяться подсистемой контроля целостности и непротиворечивости данных сервера, что в свою очередь не позволит внести или изменить данные в таблице так, чтобы это условие не выполнялось, а при выявлении факта наличия не соответствующих этому условию данных в таблице она будет считаться повреждённой. Сразу после этого ключевого слова указывается уникальный идентификатор (имя) этого ограничения (он может быть пропущен, тогда сервер сгенерирует его автоматически).
REFERENCES - ключевое слово, которое указывает, что для каждой записи таблицы значение выражения описанного непосредственно перед ним индекса будет контролироваться на наличие в точности совпадающего по значению, включая деление на фрагменты при наличии такового, значения в уникальном индексном выражении таблицы, указанном непосредственно после этого ключевого слова. Контроль выполняется подсистемой контроля целостности и непротиворечивости данных сервера. Любые действия, которые приведут к нарушению такого соответствия, будут блокироваться. При выявлении любого несоответствия данные будут считаться повреждёнными.
Сборка персонального компьютера от Artline: умный выбор для современных пользователей