В приведенном ниже коде SQL избыточен NOT NULL, поскольку f_ID является первичным ключом и, следовательно, не может быть нулевым для любой записи?
CREATE TABLE t_Activities( f_ID varchar(50) NOT NULL, PRIMARY KEY (f_ID))
Что если позже вы отбросите ограничение первичного ключа?Должен ли столбец разрешать нули или нет после этого?Да нет Может быть?Два ограничения разные.Ограничение PK требует a NOT NULL, но не подразумевает one.
Это может быть избыточно, но я предпочитаю этот метод создания primary key (или Identity столбец). Это показывает, что человек, составляющий таблицу, понимает и намеревается столбец NOT NULL, а также Primary Key для таблицы.
primary key
Identity
NOT NULL
Primary Key
Это правильно. Если у вас было:
CREATE TABLE t_Activities( f_ID varchar(50), PRIMARY KEY (f_ID))
Это был бы эквивалент. Ограничение первичного ключа не допускает NULL s.
NULL