【问题标题】:I am unable to drop a column from DB2 table我无法从 DB2 表中删除列
【发布时间】:2020-02-10 10:58:33
【问题描述】:

我正在尝试从我的 DB2 表中删除一列。

  • 表名 = Instructor
  • 列名是Page

使用的命令是:

ALTER TABLE instructor 
DROP COLUMN page;

我收到这个错误

列、属性或句点“PAGE”未在“GFQ70186.INSTRUCTOR”中定义.. SQLCODE=-205, SQLSTATE=42703, DRIVER=4.25.1301

请帮助我理解这个错误

【问题讨论】:

  • 您在不同的架构中有多个instructor 表吗?
  • 没有。我只有一张桌子。我可以在此表中添加列,但无法删除任何列。
  • 你能检查一下你的列'Page'有任何Check吗?
  • Page 列有 CHECK 约束,因此不能删除。
  • 您确定您使用的是 SQL Server 吗?这看起来不像是 SQL Server 错误。 (我的 searchfu 表明这是一个 DB2 错误。)

标签: sql db2 ibm-cloud db2-luw


【解决方案1】:

如果您的列名是 Page(即大写 P 和小写 age),那么您需要使用双引号

ALTER TABLE INSTRUCTOR
DROP COLUMN "Page"

https://www.ibm.com/support/knowledgecenter/en/SSEPGG_11.5.0/com.ibm.db2.luw.sql.ref.doc/doc/r0000720.html

普通标识符:

普通标识符是一个大写字母后跟零个或多个字符,每个字符是一个大写字母、一个数字或下划线字符。 注意,指定普通标识符时可以使用小写字母,但处理时会转为大写

分隔标识符:

定界标识符是一个或多个用双引号括起来的字符序列。序列中的前导空白很重要。当字符序列不符合普通标识符时,可以使用分隔标识符。 这样一个标识符可以包含小写字母

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-01-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多