2012-08-24 149 views
0

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

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

任何人都可以帮忙吗?我不想使用Set IDENTITY_INSERT,我想从此列中完全删除标识行为。

感谢

+0

您是否尝试过通过ISQL手动创建表?这可能是与使用Sybase Central相关的行为。 – user1505078

+0

从iSql创建表格工作得很好。我的问题是我可以删除sybase中的主键列的身份行为(而不是使用set IDENTITY_INSERT,它只是将其设置为关闭,而不是删除行为)。 – conceptSeeker

回答

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