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

SQL Server の列に ID を追加する方法は?

    できません IDENTITY を追加 既存の列に。できません。

    新しいを作成する必要があります タイプ INT IDENTITY の列 次に、不要になった古い列を削除します (必要に応じて、新しい列の名前を古い名前に変更することもできます)

    また:しない ビジュアル デザイナーでこれを行います。これにより、新しい構造でテーブルが再作成され、すべてのデータがコピーされます。 (1,000 万行すべて)、古いテーブルを削除します。

    ストレートな T-SQL ステートメントを使用する方がはるかに効率的です。これにより、「インプレース」更新が行われ、非破壊的 (データが失われることはありません) になり、失われません。 プロセスで約 1,000 万行をコピーする必要があります...

    ALTER TABLE dbo.YourTable
      ADD NewID INT IDENTITY(1,1) NOT NULL
    

    タイプ INT IDENTITY の新しい列を追加する場合 テーブルに追加すると、連続した番号が自動的に入力されます。これを止めることはできず、後で値を更新することもできません。

    これらのオプションはどちらも実際にはあまり役に立ちません。最終的には、異なる ID 値になる可能性があります....これを正しく行うには、次のことを行う必要があります:

    • 適切な構造と IDENTITY を使用して、事前に新しいテーブルを作成します。 すでに導入済み
    • 次に、SET IDENTITY_INSERT (yourtable) ON をオンにします そのテーブルで ID 列に値を挿入できるようにする
    • 元のソースからこのデータをコピー
    • ID の挿入をもう一度オフにします:SET IDENTITY_INSERT (yourtable) OFF

    このアプローチでのみ、新しいテーブルの IDENTITY 列で同じ ID を取得できます。



    1. MySQLサーバーに接続できませんエラー111

    2. Django + Psycopg2:InterfaceError:プロトコル3のみがサポートされています

    3. 名前列からスラッグ名列を生成する簡単な方法は?

    4. データベースの再起動/切断時にJBossがデータベースに自動再接続します