概要:このチュートリアルでは、SQL Server ALTER TABLE ALTER COLUMN
テーブルの列を変更するステートメント。
SQL Serverでは、テーブルの既存の列に対して次の変更を実行できます。
- データタイプを変更する
- サイズの変更
-
NOT NULL
制約の追加
列のデータタイプの変更
列のデータタイプを変更するには、次のステートメントを使用します。
Code language: SQL (Structured Query Language) (sql)
新しいデータタイプは古いデータタイプと互換性がある必要があります。それ以外の場合は、列にデータがあり、変換に失敗した場合、変換エラーが発生します。
次の例を参照してください。
まず、データタイプが次の1つの列を持つ新しいテーブルを作成します。 INT
:
Code language: SQL (Structured Query Language) (sql)
次に、テーブルにいくつかの行を挿入します:
Code language: SQL (Structured Query Language) (sql)
次に、mo列のデータ型をINT
からVARCHAR
に指定します:
Code language: SQL (Structured Query Language) (sql)
3番目に、文字列データを含む新しい行を挿入します。
Code language: SQL (Structured Query Language) (sql)
4番目に、列のデータ型を INT
に戻る:
Code language: SQL (Structured Query Language) (sql)
SQL Serverは次のエラーを発行しました:
Code language: SQL (Structured Query Language) (sql)
列のサイズを変更する
次のステートメントは、データ型が1つの列を持つ新しいテーブルを作成します。 VARCHAR(10)
:
Code language: SQL (Structured Query Language) (sql)
サンプルデータをt2テーブルに挿入しましょう:
Code language: SQL (Structured Query Language) (sql)
次のように列のサイズを増やすことができます。
Code language: SQL (Structured Query Language) (sql)
ただし、サイズを小さくすると、列のSQLServerは、既存のデータをチェックして、新しいサイズに基づいてデータを変換できるかどうかを確認します。変換が失敗した場合、SQL Serverはステートメントを終了し、エラーメッセージを発行します。
たとえば、列c
のサイズを5文字に減らすと:
Code language: SQL (Structured Query Language) (sql)
SQLServerは次のエラーを発行しました:
Code language: SQL (Structured Query Language) (sql)
NOTNULL制約をに追加しますnull可能な列
次のステートメントは、null可能な列を持つ新しいテーブルを作成します。
Code language: SQL (Structured Query Language) (sql)
次のステートメントは、テーブルにいくつかの行を挿入します。 :
Code language: SQL (Structured Query Language) (sql)
NOT NULL
制約を列c
、最初にNULLを非NULLに更新する必要があります。例:
Code language: SQL (Structured Query Language) (sql)
次に、NOT NULL
制約:
Code language: SQL (Structured Query Language) (sql)
このチュートリアルでは、SQL Server ALTER TABLE ALTER COLUMN
を使用して変更する方法を学習しました。既存の列のいくつかのプロパティ。