Зачем использовать «не нулевой первичный ключ» в TSQL?

Я слишком часто вижу «не нулевой первичный ключ» в сценариях, создающих таблицы в TSQL в блогах, статьях, книгах, форумах, здесь, в SO и т. Д.

Например, BING дает 630 000 результатов ((только на английском языке), если искать по «не нулевому» NEAR «первичный ключ» «sql server»:
http://www.bing.com/search?q=%22not+null%22+NEAR+%22primary+key%22+%22sql+server%22&go=& Я попытался создать таблицы с первичными ключами с «NOT NULL» и без него в SQL Server, но не смог уловить возможную разницу.

Почему все используют «NOT NULL» для создания первичного ключа даже в быстрых (коротких) иллюстрациях?


Обновление:
Как NULL может идентифицировать что-либо или быть уникальным (а также предотвращать множественные NULL, если один разрешен)? Не указано, отсутствует, неприменимое значение

В моем вопросе также есть подвопросы:
если для PK определено "NOT NULL", почему тогда UNIQUE не указан?
А каково определение PK. Это УНИКАЛЬНОЕ ОГРАНИЧЕНИЕ + НЕ НУЛЬ или УНИКАЛЬНЫЙ ИНДЕКС (тогда почему НЕ НУЛЬ)?
Пожалуйста, дайте мне ссылку на документы msdn.

Обновление 2: @Damien_The_Unbeliever

Почему нет синонима без «NOT NULL»?

CREATE TABLE T3 
(
    PK int -- NOT NULL commented out
    , nonPK int -- to double-check my sanity 
    , constraint PK_vgv8 PRIMARY KEY (PK) on [PRIMARY]
) 

по-прежнему не разрешает выдачу NULL:


  • Microsoft SQL Server Management Studio


    Ни одна строка не обновлялась.

    Данные в строке 2 не были зафиксированы. Источник ошибки: поставщик данных .Net SqlClient. Сообщение об ошибке: не удается вставить значение NULL в столбец «PK», таблица «TestData.dbo.T3»; столбец не допускает значений NULL. Ошибка INSERT.

    Оператор прерван.

    Исправьте ошибки и повторите попытку или нажмите ESC, чтобы отменить изменение (я).


    OK Help


Update3:
Это определение понятий и терминов может показаться непрактичным неудобством.
Это не так, какого-то неправильного утверждения (по мнению других во время общения / обсуждения) по основному понятию достаточно, чтобы считаться дебилом и создавать барьеры в профессиональном взаимодействии и общении.

Я забыл сказать, что NOT NULL создается SSMS для PK!

17
задан Gennady Vanin Геннадий Ванин 29 April 2012 в 13:50
поделиться