SQL Server - ограничение NOT NULL, избыточное для первичного ключа? - PullRequest
3 голосов
/ 09 ноября 2011

В приведенном ниже коде SQL избыточен NOT NULL, поскольку f_ID является первичным ключом и, следовательно, не может быть нулевым для любой записи?

CREATE TABLE t_Activities(
    f_ID varchar(50) NOT NULL,
    PRIMARY KEY (f_ID))

Ответы [ 3 ]

4 голосов
/ 09 ноября 2011

Что если позже вы отбросите ограничение первичного ключа?Должен ли столбец разрешать нули или нет после этого?Да нет Может быть?Два ограничения разные.Ограничение PK требует a NOT NULL, но не подразумевает one.

1 голос
/ 09 ноября 2011

Это может быть избыточно, но я предпочитаю этот метод создания primary key (или Identity столбец). Это показывает, что человек, составляющий таблицу, понимает и намеревается столбец NOT NULL, а также Primary Key для таблицы.

0 голосов
/ 09 ноября 2011

Это правильно. Если у вас было:

CREATE TABLE t_Activities( 
    f_ID varchar(50), 
    PRIMARY KEY (f_ID)) 

Это был бы эквивалент. Ограничение первичного ключа не допускает NULL s.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...