0

Sybase ASE 15.5(Sybase AnyWhere)のSybaseCentralツールを使用していくつかのテーブルを作成しました。列を主キー(intデータ型)として定義しましたが、どういうわけか列もIDになりました。

現在、Sybase Centralから、このテーブルまたは参照されているテーブルにデータがない場合でも、その列からIDを削除する方法はありません。

誰か助けてもらえますか?Set IDENTITY_INSERTを使用したくないので、この列からIDの動作を完全に削除したいと思います。

ありがとう

4

1 に答える 1

3

使用している Sybase ソフトウェアまたはソフトウェアのバージョンがわからないので、あなたの質問は少しわかりにくいものです。Sybase ASE 15.5 は Sybase SQL Anywhere と同じではありませんが、これらの手順が問題なく機能することを願っています。

ID 動作を列から削除することはできませんが、テーブルを変更して同じことを行うことはできます。データを保存するために必要な手順は次のとおりです。テーブルにインデックスがないことを確認してください。

  • テーブルを変更して、現在の ID 列と同じデータ型の新しい列を追加します。
  • ID 列から新しい列にデータをコピーします。
  • ID 列を削除する
  • (オプション) テーブルに対して何らかのコードを記述した場合は、新しい列の名前を削除したばかりの列と同じ名前に変更することをお勧めします。

    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 に答える