Не удалось установить вычисляемый столбец, а не Null

У меня возникают проблемы с установкой вычисленного столбца как not null.

Я хочу достичь C001, C002... и т.д. и в то же время установить его как not null.

Я прочитал на форуме, что этого можно достичь, используя значение по умолчанию 0 для значений NULL.
Например, ISNULL(Price + Taxes, 0)

Я попытался применить эту формулу:

('C'+right('000'+CONVERT([varchar](3),[ID],(0)),(3)))

Но это не сработало. Может ли кто-нибудь сказать мне, что мне не хватает?

ALTER CreditCard accountNo AS ISNULL('C'+right('000'+CONVERT([varchar](3),[idCreditCard],(0)),(3)),0)
6
21 июня '12 в 10:43
источник поделиться
2 ответов

Наконец-то я нашел решение моей проблемы!

Правильный запрос должен быть:

ALTER TABLE CreditCard ADD accountNo AS ISNULL('C'+right('000'+CONVERT([varchar](3),[idCreditCard],(0)),(3)),0)

Спасибо за помощь, ребята!

6
21 июня '12 в 12:20
источник

Если это относится к SQL Server, вы можете быть заинтересованы в этом из MSDN.

'NOT NULL может быть задан для вычисляемых столбцов, только если указано PERSISTED.' http://msdn.microsoft.com/en-us/library/ms190273.aspx

... но, пытаясь перепроектировать вопрос из ответа, я думаю, что "keenlearner хотел только убедиться, что в столбце никогда не было нулевого значения без ограничения.

3
12 июля '13 в 11:32
источник

Посмотрите другие вопросы по меткам или Задайте вопрос