ALTER TABLE ステートメントを使用して SQL Server でテーブルの列の 'NULL を許可' 属性を変更する方法
SQL Server でテーブルを変更する方法:'NULL を許可' 属性を NOT NULL から NULL を許可に変更する方法
このチュートリアルでは、SQL Server でテーブルの列の 'NULL を許可' 属性を NOT NULL から NULL を許可に変更する方法を説明します。
要件
このチュートリアルを実行するには、以下の要件を満たしている必要があります。
- SQL Server データベースにアクセスできる
- 基本的な SQL Server の知識を持っている
手順
- ALTER TABLE ステートメントを使用する
'NULL を許可' 属性を NOT NULL から NULL を許可に変更するには、ALTER TABLE
ステートメントを使用します。構文は以下の通りです。
ALTER TABLE table_name
MODIFY COLUMN column_name [DATA_TYPE] [NOT NULL] [DEFAULT value];
ここで、
table_name
は変更するテーブルの名前です。DATA_TYPE
は列のデータ型 (省略可)。NOT NULL
は列を NOT NULL に制約するオプション (省略可)。DEFAULT value
は列の既定値 (省略可)。
例
次の例では、Customers
テーブルの Address
列の 'NULL を許可' 属性を NOT NULL から NULL を許可に変更します。
ALTER TABLE Customers
MODIFY COLUMN Address VARCHAR(255) NULL;
- SSMS を使用する
SQL Server Management Studio (SSMS) を使用して、'NULL を許可' 属性を変更することもできます。
- SSMS でデータベースに接続します。
- オブジェクト エクスプローラーで変更するテーブルをナビゲートします。
- テーブルを右クリックし、コンテキスト メニューから [設計] を選択します。
- テーブル デザイナーが開きます。
- [列のプロパティ] ダイアログ ボックスで、[全般] タブを選択します。
- [NULL を許可] チェックボックスをオンにします。
- [OK] をクリックして変更を保存します。
注意事項
- 列の 'NULL を許可' 属性を変更する前に、既存のデータに NULL 値が含まれていないことを確認してください。
- 列を NOT NULL に制約すると、既存の NULL 値が削除される可能性があります。
- 列の 'NULL を許可' 属性を変更すると、データの整合性と制約に影響を与える可能性があることに注意してください。
サンプルコード:SQL Server でテーブルの列の 'NULL を許可' 属性を NOT NULL から NULL を許可に変更する方法
-- Customers テーブルの Address 列の 'NULL を許可' 属性を NOT NULL から NULL を許可に変更する
ALTER TABLE Customers
MODIFY COLUMN Address VARCHAR(255) NULL;
説明
ALTER TABLE Customers
:この句は、変更するテーブルを指定します。この例では、Customers
テーブルを変更します。MODIFY COLUMN Address
:この句は、変更する列を指定します。この例では、Address
列を変更します。VARCHAR(255)
:この句は、列のデータ型を指定します。この例では、Address
列はVARCHAR(255)
データ型になります。NULL
:このキーワードは、列が NULL 値を許可することを指定します。
SQL Server でテーブルを変更する方法:'NULL を許可' 属性を NOT NULL から NULL を許可に変更するその他の方法
DEFAULT
制約を使用して、列の既定値を NULL に設定することで、'NULL を許可' 属性を NOT NULL から NULL を許可に変更できます。構文は以下の通りです。
ALTER TABLE table_name
ALTER COLUMN column_name [DATA_TYPE] DEFAULT NULL;
ALTER TABLE Customers
ALTER COLUMN Address VARCHAR(255) DEFAULT NULL;
ALTER TABLE table_name
ADD CONSTRAINT constraint_name
CHECK (column_name IS NULL);
constraint_name
は制約の名前です。
ALTER TABLE Customers
ADD CONSTRAINT Address_CAN_BE_NULL
CHECK (Address IS NULL);
CHECK
制約を使用する場合は、制約が既存のデータと互換性があることを確認してください。
sql sql-server sql-server-2008