新しい列を追加する前にテーブルの行サイズを決定し、8060バイトの制限を超えないようにする明確な方法はありますか?SQL Server 2005 - テーブルの行サイズ制限に達する
たとえば、テーブルの行の長さが現在8055バイトで、datetime(8バイト)を追加したい場合、これは8063バイトになります(ヌルマッピングを除く)。
しかし、整数(4バイト)を追加すると、テーブルサイズ(nullマッピングを除く)に収まる8059バイトになります。
現在、テーブルのサイズを取得できますが、データ型のサイズ(int、datetimeなど)を取得するためのSQLファンクションを作成するのが難しく、データ型にNULLマッピング。
tablenameとdatatype:fnIsEnoughStorage( 'table1'、int)の2つの変数を受け入れ、スカラ関数からブール値(yes/no)を受け取る関数を使用できますか?
trueの場合、テストが決定された後にALTER TABLEコマンドを実行します。
私のテーブルの1つに8kの限界を超える行があった場合、私はデザインを非常に真剣に見ていきます。 –
どのデータを格納する必要があるかを分析するのではなく、どのデータ型を追加するかによってテーブルを実際に設計していますか? –