У меня есть следующий вычисляемый столбец в функции создания таблицы:компьютерной колонки - в качестве первичного ключа
Create table test
(
Code1 nchar(10),
Code2 nchar (10),
Type nchar(10),
Final AS CASE WHEN LEN(Code1)>0 THEN Code1 WHEN LEN(Code2)>0 THEN Code2 ELSE Type END
);
Alter table test
add constraint PK_Test1
Primary Key (Final)
Но я получаю следующее сообщение об ошибке
«Невозможно определить ограничение первичного ключа на обнуляемом колонке в таблице ".
Это потому, что Code 1, Code 2 и Type могут быть NULL, но все три никогда не будут NULL. Один из них всегда будет иметь значение.
Есть ли в любом случае я могу определить вычисляемый столбец в качестве первичного ключа с учетом вышеизложенного?
Большое спасибо - JT
Каким образом семантика значения "" (т. Е. Одиночного пространства) когда-либо отличалась от желаемой величины NULL для каждого из этих полей? Если нет, то просто сделайте их НЕ NOT NULL и используйте одно место вместо значения NULL. Это также упростит ваш поиск и логику соединения для этой таблицы везде. –
Если какой-либо ответ решил вашу проблему, вы можете пометить вопрос как ответ (там должен быть флажок слева от ответов). Если ни один из них не сделал, отредактируйте свой вопрос, чтобы добавить более подробную информацию, чтобы можно было (правильно) ответить. –