sql >> データベース >  >> RDS >> Sqlserver

ID列をintからbigintに置き換えます

    まあ、それは本当にこれを行うための迅速で簡単な方法ではありません...

    私のアプローチは次のようになります:

    1. IDを除いて同じ構造の新しいテーブルを作成します 列がBIGINT IDENTITY INT IDENTITYの代わりに

      ----[ここでサーバーを排他的シングルユーザーモードにします。 ] ----

      のこの時点から、ユーザーはサーバーを使用できません。
    2. テーブルを参照するすべての外部キー制約を見つけて無効にします

    3. SET IDENTITY_INSERT (your new table) ON

    4. 古いテーブルの行を新しいテーブルに挿入します

    5. SET IDENTITY_INSERT (your new table) OFF

    6. 古いテーブルを削除する

    7. 新しいテーブルの名前を古いテーブル名に変更します

    8. BIGINTを使用するように、テーブルへのFK参照を持つすべてのテーブルを更新します INTの代わりに (これは、単純なALTER TABLE ..... ALTER COLUMN FKID BIGINTで実行できるはずです。 )

    9. すべての外部キー関係を再作成します

    10. これで、サーバーを通常のマルチユーザー使用に戻すことができます



    1. ピアツーピア貸付プラットフォームデータモデル

    2. SQL Serverで「datetimeoffset」を「datetime2」に変換します(T-SQLの例)

    3. PostgreSQLの複数の列からの月間合計の表示

    4. SparkSQLデータフレームで機能を削除する