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

Identity_insertを使用した後に自動的に再シードする方法は?

    このリンクの情報を使用してください リセットする必要のある各テーブルからmax(RID)を取得するSQL関数と組み合わせます。たとえば、主キーシードを25000で開始する場合は、以下のコード(StartSeedValue-1)を使用します

    DBCC CHECKIDENT('myTable', RESEED, 24999)
    

    したがって、組み合わせて、あなたはこのような何かを最終的にする必要があります

    DECLARE @maxVal INT
    SELECT @maxVal = ISNULL(max(ID),0)+1 from mytable
    DBCC CHECKIDENT('mytable', RESEED, @maxVal)
    

    擬似コードで申し訳ありませんが、SQL関数を作成してからしばらく経ちました:)

    編集:

    キャッチしてくれてありがとう、INTEGERをINTに変更しました

    USE YourDBName
    GO 
    SELECT *
    FROM sys.Tables
    GO 
    

    これにより、データベース内のすべてのユーザーテーブルのリストが表示されます。このクエリを「ループ」として使用すると、すべてのテーブルのシードをリセットできるようになります。



    1. Codeigniter Cart-データベースにデータを保存する-どのようにアプローチしますか?

    2. クエリは、すべてを個別の行ではなく1つの行に連結します

    3. MYSQLサーバーで単一のJOINステートメントを使用して2つのテーブルを更新する方法は?

    4. SQLエラー:ORA-12712:新しい文字セットは古い文字セットのスーパーセットである必要があります