Sql 向表中添加列和数据

Sql 向表中添加列和数据,sql,sql-server,ssms,Sql,Sql Server,Ssms,我正在尝试运行以下查询。当我分别运行它们时,代码会正确执行。当我一起运行它们时,会收到错误消息: Msg 207,16级,状态1,第11行 无效的列名“TotOP” Msg 207,16级,状态1,第12行 无效的列名“TotPK” 就好像第一个查询根本没有运行一样有什么想法吗 作为一种解决方法,我知道我可以在开始时生成所有列,并且只能部分填充表,在运行第二个查询之前,将最后两列保留为空。但是,我很想知道为什么这些语句可以单独运行,而不能同时运行 问题1: ALTER TABLE [fcgen]

我正在尝试运行以下查询。当我分别运行它们时,代码会正确执行。当我一起运行它们时,会收到错误消息:

Msg 207,16级,状态1,第11行 无效的列名“TotOP”

Msg 207,16级,状态1,第12行 无效的列名“TotPK”

就好像第一个查询根本没有运行一样有什么想法吗

作为一种解决方法,我知道我可以在开始时生成所有列,并且只能部分填充表,在运行第二个查询之前,将最后两列保留为空。但是,我很想知道为什么这些语句可以单独运行,而不能同时运行

问题1:

ALTER TABLE [fcgen].[RPD1yeardata]
     ADD [TotOP] DECIMAL (7,3) NULL, 
         [TotPK] DECIMAL (7,3) NULL;
问题2:

UPDATE [fcgen].[RPD1yeardata]
SET [TotOP] = [1]+[2]+[3]+[4]+[5]+[6]+[7]+[8]+[9]+[10]+[11]+[12]+[13]+[14]+[39]+[40]+[41]+[42]+[43]+[44]+[45]+[46]+[47]+[48],
    [TotPK] = [15]+[16]+[17]+[18]+[19]+[20]+[21]+[22]+[23]+[24]+[25]+[26]+[27]+[28]+[29]+[30]+[31]+[32]+[33]+[34]+[35]+[36]+[37]+[38]
FROM [fcgen].[RPD1yeardata]

只需使用goafter1s查询

ALTER TABLE [fcgen].[RPD1yeardata]
ADD [TotOP] DECIMAL (7,3) NULL, 
    [TotPK] DECIMAL (7,3) NULL;

Go

--Query 2:

UPDATE [fcgen].[RPD1yeardata]
    SET [TotOP] = [1]+[2]+[3]+[4]+[5]+[6]+[7]+[8]+[9]+[10]+[11]+[12]+[13]+[14]+[39]+[40]+[41]+[42]+[43]+[44]+[45]+[46]+[47]+[48],
        [TotPK] = [15]+[16]+[17]+[18]+[19]+[20]+[21]+[22]+[23]+[24]+[25]+[26]+[27]+[28]+[29]+[30]+[31]+[32]+[33]+[34]+[35]+[36]+[37]+[38]
    FROM [fcgen].[RPD1yeardata];

太好了,解决了问题。只是想知道在什么情况下查询是以批处理的形式发送的,还是总是这样?