Range
という名前のテーブルがあり、データ型がint
のmin_value
という列が含まれています。私はその列に長い値を保存する必要があります。 ALTER TABLE
は、既存のデータに対してより多くの領域を割り当てます。それは非効率的です。基本的に私が必要とするのは、今後追加されるエントリのためのスペースです。既存のものではありません。ALTER TABLEを使用せずにSQL Serverのテーブル列の数値範囲を増やす
-1
A
答えて
1
ALTER TABLE
を使用し、列データ型をBIGINT
に変更するのが最も効果的です。
幸運なことに消費できる8バイトの値が不安な場合は、これが解決する1つの問題であるため、Enterprise Editionの場合は行圧縮を有効にできます。
代わりに、新しいNULL可能なBIGINT列min_value2
を追加することもできます。 ISNULL(min_value2、min_value)を使用して、1つの列に値があり、永続化されていない計算列があることを確認するチェック制約を設定できます。メタデータのみであるため、最初はこれは非常に安いでしょうが、新しい行と更新された行がの両方のスペースを占めるようになると、時間が経つにつれてより高価になります。列。
もう1つの方法は、BIGINTを使用して新しいテーブルを作成し、単にそれを必要とする行に使用することです。あなたは、組合がそれらを一緒にするという見解を持つことができます。しかし、これにより複雑さが増し、クエリ実行計画の効率が低下する可能性があります。
関連する問題
- 1. SQL Serverでalter table alter columnステートメントを複数回実行する
- 2. 範囲内のセルの値を複数のシートに1つずつ増やす
- 3. テーブルを削除して再作成せずにSQL ServerのID列の値を増やす
- 4. 範囲内の最後の行の後にSQL Serverデータベースの行を増やす
- 5. デフォルトのSQL ALTER TABLE
- 6. alter tableのSQL Serverのパフォーマンス列の変更の変更データ型
- 7. SQL Server 2000 - ALTER TABLE + INSERT INTO =エラー?
- 8. Oracle SQL-ALTER TABLEエラー
- 9. SQL Server:列の値を1つ増やす
- 10. のALTER TABLEエラーMS SQL
- 11. Sql LIKE数値の範囲
- 12. 辞書理解の範囲内で変数の値を増やす方法
- 13. SQL Server - 変数の日付範囲
- 14. SQL Serverトリガ:別のテーブルの列の値が増加したときに、テーブルの列の値を増やす方法
- 15. カーソルを使用する場合のSQL Serverプロシージャ内の変数の範囲
- 16. SQL Serverの日付範囲
- 17. SQL Serverは更新で2つのテーブルを増やす
- 18. SQLカーソル内のテーブル変数の範囲
- 19. ベクトルを使用せずにC++で配列のサイズを増やす
- 20. knex.jsを使用したMy Sql Alterテーブル
- 21. ALTER TABLE構文
- 22. SQL文字列の範囲から数値を取得
- 23. alter table add複数の列の後に1列目
- 24. alter table addカラムを2つのテーブルに使用できますか?
- 25. 複数の数値範囲の順列
- 26. SQL Server - 'CREATE TABLE' SQLスクリプトをテーブル定義と比較するC#
- 27. DBCCを使用せずに各SQLテーブルのページ数を確認
- 28. トランザクションを使用せずにSQL Serverテーブルの更新データをロールバックする
- 29. ActiveModel ID範囲を8バイトに増やす
- 30. のALTER COLUMNテーブルには、列
既存のデータには1つのデータ型を設定することはできません。将来のデータ用に大きなデータ型を使用することはできません。 'int'がもう十分に大きくなければ、' ALTER TABLE'を使ってその列のデータ型を 'BIGINT'に変更する必要があります。これは**すべての**行 - 既存のものと将来のものに適用されます。これを回避する方法はありません。 –