我们可以在SQL SERVER中创建多个计算列吗?

时间:2013-01-28 13:50:54

标签: sql sql-server-2008-r2

我正在处理一个表,其中一个表有多个计算列。我们可以这样做吗? 我尝试过以下代码,但它不起作用。

CREATE TABLE CRM_Doctor_Request_old(
     Id int NULL,[Event_Type_Id] [bit] NULL, 
     Compute_Event_Type AS CASE WHEN Event_Type_Id=1 Then 'Individual' WHEN Event_Type_Id=0 Then 'Group' PERSISTED, 
     CRM_State_Id smallint NULL, 
     Compute_CRM_State AS CASE WHEN CRM_State_Id=1 Then 'Pending' WHEN CRM_State_Id=2 Then 'Approved' WHEN CRM_State_Id=3 Then 'Cancelled' PERSISTED, 
     Service_State_Id smallint NULL, 
     CRM_Service_State AS CASE WHEN Service_State_Id=1 Then 'In queue' WHEN Service_State_Id=2 Then 'In Process' WHEN Service_State_Id=3 Then 'Completed' WHEN Service_State_Id=3 Then 'Cancelled' PERSISTED
);

2 个答案:

答案 0 :(得分:2)

不要忘记END你的案件:

CASE WHEN ... THEN ... WHEN ... THEN ... END

据我所知,多个计算列没有任何问题。

答案 1 :(得分:1)

您的计算列依赖于Event_Type_Id,但这不在表定义中。