Keenlearner
Keenlearner

Reputation: 704

Having trouble setting a computed column as not Null

I'm having problems setting a computed column as not null.

What I want to achieve is C001,C002..., etc. and at the same time set it as not null.

I have read on a forum that this can be achieved by using the default value 0 for NULL values.
E.g., ISNULL(Price + Taxes, 0)

I have tried to apply to this formula:

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

But it didn't seem to work. Can anyone tell me what am I missing?

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

Upvotes: 6

Views: 3212

Answers (2)

Phil Factor
Phil Factor

Reputation: 3162

If this relates to SQL Server, you might be interested in this from MSDN.

'NOT NULL can be specified for computed columns only if PERSISTED is also specified.' http://msdn.microsoft.com/en-us/library/ms190273.aspx

... but after trying to reverse-engineering the question from the answer, I think that 'keenlearner wanted only to ensure that there was never a null value in the column without having the constraint.

Upvotes: 3

Keenlearner
Keenlearner

Reputation: 704

I've finally found the solution to my problem!

The correct query should be:

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

Thanks for the help guys!

Upvotes: 6

Related Questions