And*_*nda 53 sql edit calculated-columns alter sql-server-2008
我有一个使用以下行创建的计算列:
alter table tbPedidos 
add restricoes as (cast(case when restricaoLicenca = 1 or restricaoLote = 1 then 1 else 0 end as bit))
但是,现在我需要更改此列,例如:
alter table tbPedidos 
alter column restricoes as (cast(case when restricaoLicenca = 1 or restricaoLote = 1 or restricaoValor = 1 then 1 else 0 end as bit))
但它不起作用.我正在尝试为case语句输入另一个条件,但它不起作用.
非常感谢!
Len*_*rri 69
像这样的东西:
ALTER TABLE dbo.MyTable
DROP COLUMN OldComputedColumn
ALTER TABLE dbo.MyTable
ADD OldComputedColumn AS OtherColumn + 10
Mic*_*odd 67
如果您尝试更改现有列,则无法使用ADD.相反,试试这个:
    alter table tbPedidos将列限制更改为(强制转换(当limitaoLicenca = 1或者restrictaoLote = 1或者limitaoValor = 1时的情况,然后是1,否则0结束为bit))
编辑:以上是不正确的.更改计算列时,您唯一可以做的就是删除它并重新添加它.
在这种情况下,仅使用SQL Server Management Studio 的图表功能可以更轻松、更快捷。
('')或同样无害的内容(可能不会更改列的数据类型)。在 SSMS 中这样做将保留表中列的顺序,但简单的方法drop...add无法保证这一点。这对某些人来说可能很重要。