2016-05-17 78 views
0

如果添加新列到已經存在的表用下面的命令:添加在SQL列總計其他列的值

ALTER TABLE randomquestions 
ADD Total AS R1_Number + R2_Number + R3_Number + R4_Number PERSISTED 

我得到這個錯誤:

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'AS R1_Number + R2_Number + R3_Number + R4_Number PERSISTED' at line 2

誰能告訴我在哪裏出錯的語法?

+1

這是MySQL還是SQL Server? –

+2

請提供您的表的錯誤信息和DDL – Devart

+1

請確定#1064 - 您的SQL語法錯誤;檢查對應於您的MySQL服務器** ** Microsoft SQL Server **或** MySQL **的手冊。 – lad2025

回答

1

如果MySQL 5.7.6+Generated Columns

ALTER TABLE randomquestions 
ADD Total INT AS (R1_Number + R2_Number + R3_Number + R4_Number) STORED; 

請注意,您可能需要根據的Rx_Number數據類型來改變數據類型。

+0

但是錯誤信息說不是?,請更新問題 – TheGameiswar

0

Alter看起來不錯,缺少括號和列類型。

ALTER TABLE randomquestions 
ADD Total int AS (R1_Number + R2_Number + R3_Number + R4_Number) PERSISTED 
0

我嘗試過類似的聲明以括號和它的工作:

use test 
alter table [dbo].[tablename] 
Add total2 as (price * 2) persisted 

(所以我想這是括號,這不是找你的桌子,或者只是字段名稱語法錯誤。 )