Что означает CONSTRAINT и REFERENCES в данном запросе?

468
23 августа 2017, 16:45

Таблица 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
);
Answer 1

Это ограничение, в данном случае внешний ключ. То есть значение поля TeamId ограничивается значениями содержащимися в поле Id, таблицы Teams, либо значением NULL.

Answer 2

CONSTRAINT - ключевое слово, которое указывает, что в данной секции описывается ограничение, которое налагается на данные в таблице, и которое будет проверяться подсистемой контроля целостности и непротиворечивости данных сервера, что в свою очередь не позволит внести или изменить данные в таблице так, чтобы это условие не выполнялось, а при выявлении факта наличия не соответствующих этому условию данных в таблице она будет считаться повреждённой. Сразу после этого ключевого слова указывается уникальный идентификатор (имя) этого ограничения (он может быть пропущен, тогда сервер сгенерирует его автоматически).

REFERENCES - ключевое слово, которое указывает, что для каждой записи таблицы значение выражения описанного непосредственно перед ним индекса будет контролироваться на наличие в точности совпадающего по значению, включая деление на фрагменты при наличии такового, значения в уникальном индексном выражении таблицы, указанном непосредственно после этого ключевого слова. Контроль выполняется подсистемой контроля целостности и непротиворечивости данных сервера. Любые действия, которые приведут к нарушению такого соответствия, будут блокироваться. При выявлении любого несоответствия данные будут считаться повреждёнными.

READ ALSO
Как правильно записать запрос?

Как правильно записать запрос?

Описание, того что хотел сделать, с низу в верх:

309
Matlab код из Java при помощи matconsolectl

Matlab код из Java при помощи matconsolectl

Есть matlab код + GUI сделанный при помощи matlab (с расшерениемfig)

324
Изменить цвет фона в контекстном меню android

Изменить цвет фона в контекстном меню android

Есть контекстное меню в файле menu_mainxml

309
Реализация system.arraycopy. Java

Реализация system.arraycopy. Java

ЗдравствуйтеНазрел вопрос, кто нибудь знает как реализован system

376