SQL - 如何在计算列上更改COLUMN

Bil*_*ine 14 sql sql-server

我正在使用SQL Server 2008.是否可以更改计算列而不实际删除列然后再次添加它(我可以开始工作)?例如,我有这个表:

CREATE TABLE [dbo].[Prices](
[Price] [numeric](8,3) NOT NULL,
[AdjPrice] AS [Price] / [AdjFactor],
[AdjFactor] [numeric](8,3) NOT NULL)
Run Code Online (Sandbox Code Playgroud)

后来意识到我有一个可能除以零的错误我想改变[Adjprice]列来处理这个,但是如果我只是删除列并再次添加它,我就失去了列顺序.

我想做的事情如下:

ALTER TABLE dbo.[Prices]
ALTER COLUMN [AdjPrice] AS (CASE WHEN [AdjFactor] = 0 THEN 0 ELSE [Price] / [AdjFactor] END)
Run Code Online (Sandbox Code Playgroud)

但这不正确.如果这是可能的,或者有另一种解决方案,我将不胜感激.

Nic*_*ver 19

不幸的是,如果不先删除列,就不能这样做.

来自MSDN:

ALTER COLUMN
指定要更改或更改指定的列.如果兼容级别为65或更低,则不允许使用ALTER COLUMN.有关更多信息,请参见sp_dbcmptlevel(Transact-SQL).

  • 修改后的列不能是以下任何一种:

    • 计算列或在计算列中使用.