SQL Server(つまりT-SQL言語)にこれをやるための自然な方法があるのか、ファンシーな制約/トリガを書かなければならないのでしょうか。メンテナンスの方法
私はテーブル
RebuplicanCandidates
===================================
Id | Name | ByteIndex
===================================
1 | 'Marco Rubio' | 0
2 | 'Jeb Bush' | 1
3 | 'Donald Trump' | 2
4 | 'Ted Cruz' | 3
を持っていると私はJebBush削除したとします
DELETE FROM [RepublicanCandidates] WHERE [Id]=2
をそれから私は、テーブルがByteIndex
列がシャッフルこと
RebuplicanCandidates
===================================
Id | Name | ByteIndex
===================================
1 | 'Marco Rubio' | 0
3 | 'Donald Trump' | 1
4 | 'Ted Cruz' | 2
お知らせのようになりたいです。
そして、私が候補
INSERT INTO [RepublicanCandidates] (Name) VALUES ('CarlyFiorina')
を挿入した場合、その後の表では、テーブルに基づいてビューを作成した場合、あなたはROW_NUMBER()関数を追加し、ドロップでき
RebuplicanCandidates
===================================
Id | Name | ByteIndex
===================================
1 | 'Marco Rubio' | 0
3 | 'Donald Trump' | 1
4 | 'Ted Cruz' | 2
5 | 'Carly Fiorina' | 3
ehm ....挿入された行はどうなりましたか? – Lamak
@LamakOops、そこに行く –
なぜギャップのないByteIndexを格納する必要がありますか?最初の行を削除すると、表の他のすべての行を更新する必要があります。 –