Sybase ASE 15.5标识列

时间:2012-08-24 15:54:15

标签: sybase-ase

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

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

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

由于

1 个答案:

答案 0 :(得分: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