【问题标题】:Sybase ASE 15.5 Identity columnsSybase ASE 15.5 标识列
【发布时间】:2012-08-24 15:54:15
【问题描述】:

我使用 Sybase ASE 15.5 (Sybase AnyWhere) 中的 Sybase Central 工具创建了几个表。我已将一列定义为主键(int 数据类型),并且不知何故该列也变成了 Identity。

现在从 Sybase Central 中,我无法从该列中删除标识,即使此表或任何引用的表中都没有数据。

有人可以帮忙吗?我不想使用 Set IDENTITY_INSERT,我想从该列中完全删除身份行为。

谢谢

【问题讨论】:

  • 您是否尝试过通过 isql 手动创建表?这可能是与使用 Sybase Central 有关的行为。
  • 从 iSql 创建表工作得很好。我的问题是我可以删除 sybase 中主键列的标识行为(而不是使用 set IDENTITY_INSERT,它只是将其设置为关闭,而不是删除行为)。

标签: sap-ase


【解决方案1】:

您的问题有点令人困惑,因为我不确定您使用的是什么 Sybase 软件或软件版本。 Sybase ASE 15.5 与 Sybase SQL Anywhere 不同,但希望这些步骤无论如何都能奏效。

您不能从列中删除标识行为,但可以更改表以完成相同的操作。以下是您应该采取的保存数据的步骤。确保表上没有索引。

  • 更改表以添加与当前标识列具有相同数据类型的新列。
  • 将数据从标识列复制到新列。
  • 删除标识列
  • (可选)如果您针对该表编写了任何代码,您可能希望将新列重命名为与刚刚删除的列相同的名称。

    alter table TABLE_NAME add NEW_COL int NULL
    go
    update TABLE_NAME set NEW_COL = ID_COL_NAME
    go
    alter table TABLE_NAME drop ID_COL_NAME
    go
    alter table TABLE_NAME rename NEW_COL to ID_COL_NAME
    go
    

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-10
    • 1970-01-01
    • 2016-08-13
    • 1970-01-01
    • 1970-01-01
    • 2016-04-15
    相关资源
    最近更新 更多