0

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

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

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

谢谢

4

1 回答 1

3

您的问题有点令人困惑,因为我不确定您使用的是什么 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
    
于 2012-08-28T17:00:23.087 回答