我在将计算列设置为not null
时遇到问题。
我想要达到的是C001
,C002...
等,同时将其设为not null
。
我在论坛上看过,这可以通过使用NULL值的默认值0来实现
例如,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)
答案 0 :(得分:6)
我终于找到了解决问题的方法!
正确的查询应该是:
ALTER TABLE CreditCard ADD accountNo AS ISNULL('C'+right('000'+CONVERT([varchar](3),[idCreditCard],(0)),(3)),0)
感谢帮帮!
答案 1 :(得分:3)
如果这与SQL Server有关,您可能对MSDN感兴趣。
只有在同时指定PERSISTED时,才能为计算列指定'NOT NULL。' http://msdn.microsoft.com/en-us/library/ms190273.aspx
...但是在尝试从答案中对问题进行逆向工程之后,我认为'keenlearner只想确保列中没有空值而没有约束。