エラー: IDENTITY をデータ型 int に変換中に算術オーバーフロー エラーが発生しました。算術オーバーフローが発生しました。
デバッグ:
id = my Identity 列、データ型 INT。増分=1、シード=1
select max(id) as max, min(id) as min from eventlogreport
Result: 6728550 1
select count(*) from eventlogreport
Result: 6728550
これまでのところ、とても良いです。列を増やす余地が十分にあるようです。しかし、さらに 600 000 行を挿入すると、オーバーフロー エラーが発生します。さらにデバッグ。
SELECT IDENT_CURRENT ('EventLogReport') AS Current_Identity;
Result: 2147483647
質問:
- テーブルに同じ量の行が含まれておらず、スキップされた ID がない場合、現在の ID 値がこれほど高くなるのはなぜでしょうか?
- IDENT_CURRENT を max(id) と同じ数に安全に設定するにはどうすればよいですか? それとも、id 列が参照でない限り、再シードする方が簡単でしょうか?