[英]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命令实现此目的? 谢谢
你无法改变它。
指定要更改或更改命名列。
修改后的列不能是以下任何一种:
具有时间戳数据类型的列。
表格的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.