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

SQLServerテーブルのID列の値をリセットする方法-SQLServer/T-SQLチュートリアルパート43


    最初にIdentityプロパティを理解することから始めましょう。次に、ステップに進むことができます。どのようにリセットできますか?以下のスクリプトを使用して、ID列を含むSQLServerテーブルを作成します

    USE TEST
    GO
    CREATE TABLE dbo.Person( ID INT IDENTITY(1,1), Name VARCHAR(10))

    以下のステートメントを使用して、レコードの下に挿入しましょう
    INSERT INTO dbo.Person(name) 
    VALUES ('Aamir')
    INSERT INTO dbo.Person(Name)
    VALUES ('Aamir Shahzad')
     
     文字列のサイズが列のデータ型のサイズより大きいため、1つのレコードのみが挿入され、2番目のレコードは失敗します 図1-SQLServerテーブルにレコードを挿入

    IDを確認する列の値: 列のID値を確認するには、以下のステートメントを使用できます
    --Check the Identity Value of a Column
    DBCC CHECKIDENT ('dbo.Person');
     
    Fig 2- DBCC CHECKIDENT to see the Identity Value


    2番目のレコードの挿入に失敗しましたが、ID値が増加しています。次のレコードを挿入すると、図3に示すように、そのID値は3になります。

    削除後に列のID値をリセットする方法はいくつかあります。データ。

    TRUNCATEを使用してID値をリセットします: テーブルからすべてを削除したいが、テーブルに外部キー関係がない場合は、テーブルを切り捨てることができます。これにより、データがクリーンアップされ、ID値が設定されます。 図3-切り捨てを使用してテーブルをクリーンアップし、ID値をリセットします


    DBCC CHECKIDENTを使用してID値をリセットします: テーブルが他のテーブル(プライマリキーと外部キー)の関係にある場合、テーブルを切り捨てることはできません。その場合、Deleteステートメントを使用してテーブルから値を削除してから、ID値を設定する必要があります。
    DBCC CHECKIDENT ('dbo.Person', RESEED, 0);
     図4.テーブルからデータを削除し、DBCCCHECKIDENTを使用してID値を再シードします

    ビデオデモ:SQLServerテーブルのID列の値をリセットする方法

    1. postgresqlの結果をbash変数に格納します

    2. MySQL /正規表現置換で単語を数える方法は?

    3. PostgreSQLで2つの日付の間の結果を取得する

    4. 直接実行する場合と比較してHibernateselectのパフォーマンスが低い-どのようにデバッグしますか?