列プロパティの変更
テーブル内の各列には、名前、データ型、NULL 値許容属性、データ長などのプロパティがあります。各列の定義はこれらのプロパティを合わせて構成されています。
列データ型
既存の列のデータ型は変更できますが、その列にある既存のデータが新しいデータ型に暗黙的に変換できることが条件です。詳細については、「ALTER TABLE (Transact-SQL)」を参照してください。
列のデータ長
データ型を選択すると、データ長が自動的に定義されます。長さのプロパティは、データ型が binary、char、nchar、varbinary、varchar、または nvarchar の列の場合にのみ値を増減できます。この他のデータ型の場合は、データ長がデータ型に基づいて決められているので変更することはできません。変更後のデータ長が元のデータ長より短い場合は、変更後のデータ長を超える列内の値はすべて切り詰められます。このとき、警告は生成されません。PRIMARY KEY 制約または FOREIGN KEY 制約で定義されている列の長さは変更できません。
列の有効桁数
数値列の有効桁数とは、選択したデータ型で使用する最大桁数です。数値列以外の列の有効桁数は、一般に、その列の最大長または定義長のどちらかのことを指します。
decimal 型および numeric 型以外のすべてのデータ型列では、自動的に有効桁数が定義されます。decimal 型列および numeric 型列の有効桁数は、これらの列で使用する最大桁数を再定義する場合、変更できます。データベース エンジン では、これらのデータ型のどちらかが指定されていない列の有効桁数は変更できません。
列の小数点以下桁数
numeric 型列または decimal 型列の小数点以下桁数とは、小数点の右側の最大桁数です。データ型を選択するとき、既定では列の小数点以下桁数は 0 に設定されます。浮動小数点概数を含む列では、小数点の右側の桁数が一定ではないので小数点以下桁数は未定義の状態になります。numeric 型列または decimal 型列の小数点以下桁数は、小数点の右側に表示できる桁数を再定義する場合、変更できます。
列の NULL 値許容属性
列で NULL 値を許容するかどうかを定義できます。既定では、NULL 値を許容するように定義されます。既存の列の定義を変更して、NULL 値を禁止できるのは、その列に現在 NULL 値がなく、インデックスが作成されていないときだけです。現在 NULL 値がある既存の列を NULL 値を許容しないように定義するには、次の手順に従います。
- 新しい列を追加し、NULL 値の代わりに有効な値を挿入する DEFAULT 定義をその列に指定します。
- 古い既存の列のデータを新しい列にコピーします。
- 古い列を削除します。
NULL 値を許容しない既存の列に PRIMARY KEY 制約が定義されていなければ、その列は NULL 値を許容するように変更できます。
列のプロパティを設定するには
列のプロパティを表示するには
テーブル列のプロパティ (SQL Server Management Studio)
列の名前を変更するには
列の名前を変更する方法 (Visual Database Tools)
参照
その他の技術情報
有効桁数、小数点以下桁数、および長さ (Transact-SQL)