0

我正在尝试更改 SQL 中的列数据类型,但它给了我缺少关键字错误。我查看了如何在几个地方更改列,他们都给了我这个查询:

我正在使用这个:

 ALTER TABLE CARD 
  MODIFY COLUMN Charged NUMBER(4,2);
4

3 回答 3

2

COLUMN 关键字是多余的——这应该有效:

ALTER TABLE Card MODIFY Charged NUMBER(4,2)

有趣的是,标准 SQL 不支持 MODIFY (直到我去检查 SQL Syntax时我才知道)。根据 SQL 标准(ISO/IEC 9079-2:2003),可以这样写:

11.12 <alter column definition>(p572)

更改列及其定义。

<alter column definition>    ::=   ALTER [ COLUMN ] <column name> <alter column action>

<alter column action>    ::=
           <set column default clause>
     |     <drop column default clause>
     |     <add column scope clause>
     |     <drop column scope clause>
     |     <alter identity column specification> 

(并且在 SQL 2003 中,MODIFY不是 SQL 关键字)。在这个公式中,关键字COLUMN是允许的,但它是可选的。与“真正的”DBMS 不同,它似乎也不允许更改列的类型。

于 2012-12-22T18:33:45.707 回答
0

你缺少括号,你应该省略这个词COLUMN

ALTER TABLE CARD MODIFY ( Charged NUMBER(4,2));

有关如何修改列的示例,请参阅此文档。

于 2012-12-22T18:30:03.583 回答
0

不要使用“列”作为关键字:

ALTER TABLE card
MODIFY charged NUMBER(4,2);
于 2012-12-22T18:30:39.117 回答