T-SQLを使用して、特定のテーブル列の数値の自動インクリメントシーケンスを修正する方法はありますか?SQLを使用して数値シーケンスを修正する
私はこのようになりますテーブルを考えてみましょう:
Id Bar Foo
2 5 1
3 6 1
21 7 1
22 16 1
154 17 1
176 18 1
私はこのケースでは(それが特定のId
で行から始まるBar
列の順序を継続する方法でFoo = 1
で行を更新したいと思いますId = 21
で行を選択することができます)と、最終的な結果は次のようになり
Id
列の順序に基づいて、次のすべての行にそれを適用します。
Id Bar Foo
2 5 1
3 6 1
21 7 1
22 8 1
154 9 1
176 10 1
詳細:
テーブルには、特定の場所(場所IDは「Foo」の例)のファイルデータが格納されています。各行は1つのファイルで、ファイル番号(ファイル番号は例の「Bar」)です。
ファイル番号は、その場所の現在の最大ファイル番号に基づいてファイルを作成する際に発生します。いくつかのエラーのために、ファイル番号は、ファイル番号の順序にギャップを残していくつかの先をスキップし、私はT Sqlを使用してそのギャップを修正したいと思います。 Id
を想定し
「自動インクリメント」と言えば、ちょうど**あなたは何について話していますか?アイデンティティ列? –
* 'Id = 14'で行を選択できます* ...提供されるデータにこのような行はありません –
データに関係のないダム値を増やすだけの場合(16から8をリセットできれば17 9への影響はありません)、なぜデータを照会するときにこのシーケンスを生成しないのですか? ROW_NUMBER()は、列を維持しなくてもそれを実行できます。この意味のないデータを保存する際の問題は、行が変更されるたびにリセットする必要があることです。 –