データ型 (データベース エンジン)

データを格納するオブジェクトには、そのオブジェクトに格納できるデータの種類 (文字、整数、バイナリなど) を定義するデータ型が関連付けられています。次のオブジェクトにはデータ型が関連付けられています。

  • テーブルやビュー内の列。

  • ストアド プロシージャのパラメータ。

  • 変数。

  • 特定のデータ型のデータ値を 1 つ以上返す Transact-SQL 関数。

  • リターン コードを返すストアド プロシージャ。リターン コードは必ず integer 型になります。

オブジェクトにデータ型を割り当てると、次の 4 つのオブジェクト属性が定義されます。

  • オブジェクトに含まれるデータの種類。

  • 格納値の長さまたはサイズ。

  • 数値の有効桁数 (数値データ型のみ)。

  • 数値の小数点以下桁数 (数値データ型のみ)。

データ型の有効桁数、小数点以下桁数、および長さの詳細については、「有効桁数、小数点以下桁数、および長さ (Transact-SQL)」を参照してください。

Transact-SQL には次のシステム データ型があります。

Microsoft SQL Server に格納されるデータはすべて、これらの基本データ型のいずれかとの互換性が必要です。cursor データ型は、テーブル列に割り当てることができない唯一のシステム データ型です。このデータ型は、変数およびストアド プロシージャ パラメータにだけ使用できます。

一部の基本データ型にはシノニムがあります。たとえば、rowversiontimestamp のシノニムであり、national character varying は nvarchar のシノニムです。シノニムの動作の詳細については、「データ型のシノニム (Transact-SQL)」を参照してください。

次の 2 種類のユーザー定義データ型を作成することもできます。

  • 基本データ型から作成される別名データ型。このようなユーザー定義データ型を使うと、オブジェクト内に格納する値の種類を説明できるような名前をデータ型に与えることができます。これにより、プログラマやデータベース管理者が、このデータ型で定義されたオブジェクトの用途を理解しやすくなります。次に例を示します。

    -- Create a birthday datetype that allows nulls.
    CREATE TYPE birthday
    FROM datetime NULL
    GO
    -- Create a table using the new data type.
    CREATE TABLE employee (emp_id char(5), emp_first_name char(30), emp_last_name char(40), emp_birthday birthday)
    

    詳細については、「別名データ型を使用した作業」を参照してください。

  • マネージ コードで作成されたデータ型に基づいて作成され、SQL Server アセンブリにアップロードされる CLR ユーザー定義データ型。詳細については、「CLR ユーザー定義型の使用」を参照してください。