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

SQL ServerでID列を更新するにはどうすればよいですか?

    ID列を更新することはできません。

    SQL Serverでは、updateステートメントを使用して他の列で実行できるのとは異なり、ID列を更新することはできません。

    同様の種類の要件を達成するためのいくつかの選択肢がありますが。

    • 新しいレコードのID列の値を更新する必要がある場合

    テーブルの現在のID値をチェックし、必要に応じてID値を変更するDBCCCHECKIDENTを使用します。

    DBCC CHECKIDENT('tableName', RESEED, NEW_RESEED_VALUE)
    
    • 既存のレコードのID列の値を更新する必要がある場合

    IDENTITY_INSERT を使用して、テーブルのID列に明示的な値を挿入できるようにします。

    SET IDENTITY_INSERT YourTable {ON|OFF}
    

    例:

    -- Set Identity insert on so that value can be inserted into this column
    SET IDENTITY_INSERT YourTable ON
    GO
    -- Insert the record which you want to update with new value in the identity column
    INSERT INTO YourTable(IdentityCol, otherCol) VALUES(13,'myValue')
    GO
    -- Delete the old row of which you have inserted a copy (above) (make sure about FK's)
    DELETE FROM YourTable WHERE ID=3
    GO
    --Now set the idenetity_insert OFF to back to the previous track
    SET IDENTITY_INSERT YourTable OFF
    


    1. OracleSQLで一重引用符を処理する方法

    2. SQL Server:sysテーブルではなくinformation_schemaテーブルを使用する必要がありますか?

    3. SQL Serverが2つの整数を除算した結果を四捨五入するのはなぜですか?

    4. SQL Server:同等のテーブルカスケードを削除しますか?