2012-08-24 150 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