我正在尝试更改 SQL 中的列数据类型,但它给了我缺少关键字错误。我查看了如何在几个地方更改列,他们都给了我这个查询:
我正在使用这个:
ALTER TABLE CARD
MODIFY COLUMN Charged NUMBER(4,2);
我正在尝试更改 SQL 中的列数据类型,但它给了我缺少关键字错误。我查看了如何在几个地方更改列,他们都给了我这个查询:
我正在使用这个:
ALTER TABLE CARD
MODIFY COLUMN Charged NUMBER(4,2);
COLUMN 关键字是多余的——这应该有效:
ALTER TABLE Card MODIFY Charged NUMBER(4,2)
有趣的是,标准 SQL 不支持 MODIFY (直到我去检查 SQL Syntax时我才知道)。根据 SQL 标准(ISO/IEC 9079-2:2003),可以这样写:
<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 不同,它似乎也不允许更改列的类型。
不要使用“列”作为关键字:
ALTER TABLE card
MODIFY charged NUMBER(4,2);