繁体   English   中英

更改要计算SQL SERVER的列

[英]Alter a column to be calculated SQL SERVER

我有一张类似这个的表:

CREATE TABLE [dbo].[test](
    [id] [int] IDENTITY(1,1) NOT NULL,
    [action] [varchar](50),
    [id_source] [int] NULL,
    [id_dest] [int] NULL,
    [name] [varchar](255)
)

我正在尝试转换要计算的名称列。 我尝试了类似的东西但没有成功

ALTER TABLE [dbo].[test] 
ALTER COLUMN [name] AS ([dbo].[f_get_name]([id_source],[id_dest],[action]))

目前的表格是空的。 是否可以使用ALTER命令实现此目的? 谢谢

你无法改变它。

ALTER COLUMN

指定要更改或更改命名列。

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

具有时间戳数据类型的列。

表格的ROWGUIDCOL。

计算列或在计算列中使用。

您需要删除并重新创建:

ALTER TABLE [dbo].[test]
DROP COLUMN [name];

ALTER TABLE [dbo].[test]
ADD [name] AS ([dbo].[f_get_name]([id_source],[id_dest],[action]));

是否可以使用ALTER命令实现此目的?

没有办法通过改变表来实现它。 由于列涉及计算,ALTER表命令将限制您这样做。

解:

您需要删除列并再次重新创建它,如下所示:

alter table [dbo].[test] 
drop column [name];

alter table [dbo].[test] 
add [name] as ([dbo].[f_get_name]([id_source],[id_dest],[action]));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM