无法将计算列设置为Null

时间:2012-06-21 07:43:03

标签: sql sql-server database rdbms

我在将计算列设置为not null时遇到问题。

我想要达到的是C001C002...等,同时将其设为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)

2 个答案:

答案 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只想确保列中没有空值而没有约束。