微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SQL – 如何在计算列上ALTER COLUMN

我正在使用sql Server 2008.可以更改计算列而不实际删除列,然后再次添加(我可以上班)?例如,我有这个表:
CREATE TABLE [dbo].[Prices](
[Price] [numeric](8,3) NOT NULL,[AdjPrice] AS [Price] / [AdjFactor],[AdjFactor] [numeric](8,3) NOT NULL)

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

我想做一些像:

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

但这是不正确的.如果这是可能的话,还是有另外一个解决方案,我会很乐意帮忙.

解决方法

不幸的是,您不能首先删除列.

From MSDN

ALTER COLUMN
Specifies that the named column is to be changed or altered. ALTER COLUMN is not allowed if the compatibility level is 65 or lower. For more information,see sp_dbcmptlevel (Transact-sql).

  • The modified column cannot be any one of the following:

    • A computed column or used in a computed column.

原文地址:https://www.jb51.cc/mssql/81148.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐