【发布时间】:2016-06-15 19:29:42
【问题描述】:
我正在尝试向查询中的现有表添加一列。我在向表中添加新数据方面没有太多经验,所以我不确定我当前的查询有什么问题。
我想创建一个新列,并用两个单独列的乘积填充它。所需的数据类型是 DECIMAL,但我无法让它工作。这是我的查询:
ALTER TABLE PPCSTSTR_SQL
ADD vac_var [DECIMAL(16, 6)]
UPDATE PPCSTSTR_SQL
SET PPCSTSTR_SQL.vac_var = ( PPCSTSTR_SQL.vac_fctr * PPCSTSTR_SQL.vac_rate )
SELECT PPCSTSTR_SQL.*
FROM PPCSTSTR_SQL
我不断收到一条错误消息:UpdateDisplay:获取视图数据时出错:ReturnValues:列、参数或变量 #41:找不到数据类型 DECIMAL(16,6)。
我也试过了:
ADD vac_var DECIMAL(16, 6) //Without the brackets
ADD vac_var [decimal(16, 6)] //Lowercase
据我所知,这是使用十进制值创建新列的正确语法。我做错了什么?
【问题讨论】:
-
你用的是什么数据库软件?
-
@DStanley 是 WiSys 的一个名为 Agility Design Studio 的程序。我相信它使用 T-SQL。
-
@Jabo13 我指的是后端数据库——SQL Server、Oracle、MySQL 等。根据服务器软件的不同,语法可能会略有不同。
-
@DStanley 我相信它是 SQL Server,但老实说,我对区分差异的知识有限。
-
那么
ADD vac_var DECIMAL(16, 6)应该可以工作 - 你得到 same 错误还是不同的错误?