Сервер SQL: создание таблицы со столбцами, которые поддерживают уникальную и несколькими нулями
SQL server 2014/16.
Хочу создать таблицу. В таблице есть несколько столбцов, которые нуждаются в поддержке:
1. может содержать несколько нулей.
2. Если не null, то должен быть уникальным.
3. столбцы не имеют никакого отношения.
4. не вся строка уникальна. Каждая колонка уникальна.
Как сделать команду CREATE TABLE?
Похоже, что SQL server может поддерживать только один null при использовании UNIQUE.
Ниже приведен пример того, что я хотел:
Создать таблицу UniqueTest (
col1 int,
col2 int unique null
);
Вставить в UniqueTest значения (1, 1);
-- УСПЕХ
Вставить в UniqueTest значения (2, 2);
-- УСПЕХ
Вставить в UniqueTest значения (3, 2);
-- ПОТЕРПЕТЬ НЕУДАЧУ
Вставить в UniqueTest значения (4, NULL);
-- УСПЕХ
Вставить в UniqueTest значения (5, NULL);
-- УСПЕХ
Я искал в интернете, много статей обсуждается в старой версии SQL server, например, 2005/2008.
Я думаю, что SQL server 2014/2016 имеет новую опцию CREATE TABLE, чтобы удовлетворить мои требования, но я не знаю.
Что я уже пробовал:
Решение из интернета было бы следующим:
создайте индекс для определенного столбца.
Но:
1.My таблица будет иметь 10~30 столбцов, которые нуждаются в уникальности и нулях. Если каждый столбец создать индекс, то в таблице будет 10~30 индексов. Возможно ли это?
2. индексы лотов будут снижать эффективность. Так ли это?