6

我在将计算列设置为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)
4

2 回答 2

6

我终于找到了解决我问题的方法!

正确的查询应该是:

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

谢谢你们的帮助!

于 2012-06-21T09:20:45.707 回答
3

如果这与 SQL Server 相关,您可能会从 MSDN 对此感兴趣。

'只有在还指定了 PERSISTED 时,才能为计算列指定 NOT NULL。 http://msdn.microsoft.com/en-us/library/ms190273.aspx

...但是在尝试从答案中对问题进行逆向工程之后,我认为 'keenlearner 只想确保在没有约束的情况下列中永远没有空值。

于 2013-07-12T08:32:59.747 回答