エクスポート (0) 印刷
すべて展開
展開 最小化

sp_addtype (Transact-SQL)

別名データ型を作成します。

重要な注意事項 重要

この機能は、将来のバージョンの Microsoft SQL Server では削除される予定です。 新しい開発作業では、この機能の使用を避け、現在この機能を使用しているアプリケーションは修正するようにしてください。代わりに CREATE TYPE を使用してください。

トピック リンク アイコン Transact-SQL 構文表記規則


sp_addtype [ @typename = ] type, 
    [ @phystype = ] system_data_type 
    [ , [ @nulltype = ] 'null_type' ] ;

[ @typename= ] type

別名データ型の名前を指定します。データ型の名前は、識別子の規則に従っている必要があり、各データベース内で一意であることが必要です。type のデータ型は sysname で、既定値はありません。

[ @phystype=] system_data_type

別名データ型の基になる物理データ型 (SQL Server で提供されるデータ型) を指定します。system_data_type のデータ型は sysname で、既定値はありません。次のいずれかの値を指定できます。

bigint

binary(n)

bit

char(n)

datetime

decimal

float

image

int

money

nchar(n)

ntext

numeric

nvarchar(n)

real

smalldatetime

smallint

smallmoney

sql_variant

text

tinyint

uniqueidentifier

varbinary(n)

varchar(n)

空白または区切り記号を含むパラメータはすべて、引用符で囲む必要があります。使用できるデータ型の詳細については、「データ型 (Transact-SQL)」を参照してください。

n

選択したデータ型の長さを示す、負以外の整数を指定します。

P

小数点の左側と右側に格納できる 10 進数の最大合計桁数を示す、負以外の整数を指定します。詳細については、「decimal 型と numeric 型 (Transact-SQL)」を参照してください。

s

小数点の右側に格納できる 10 進数の最大桁数を示す、負以外の整数を指定します。有効桁数以下であることが必要です。詳細については、「decimal 型と numeric 型 (Transact-SQL)」を参照してください。

[ @nulltype = ] 'null_type'

別名データ型で NULL 値をどのように処理するかを指定します。null_type のデータ型は varchar(8) で、既定値は NULL です。'NULL'、'NOT NULL'、または 'NONULL' のように、値を単一引用符で囲んで指定してください。null_typesp_addtype で明示的に定義されていない場合は、既定の NULL 値の許容属性が使用されます。既定の NULL 値の許容属性を確認するには、GETANSINULL システム関数を使用します。この設定は、SET ステートメントまたは ALTER DATABASE を使用して変更できます。NULL 値の許容属性は、明示的に定義してください。@phystypebit 型で、@nulltype が指定されない場合、既定値は NOT NULL になります。

注意 注意

null_type パラメータは、このステートメントで指定したデータ型に対する既定の NULL 値の許容属性を定義するものです。ただし別名データ型を使用してテーブルを作成する際に NULL 値の許容属性を明示的に定義した場合は、このパラメータで定義した NULL 値の許容属性よりも優先されます。詳細については、「ALTER TABLE (Transact-SQL)」および「CREATE TABLE (Transact-SQL)」を参照してください。

0 (成功) または 1 (失敗)

別名データ型の名前は、データベース内で一意であることが必要ですが、異なる名前の別名データ型で同じ定義を使用することは可能です。

sp_addtype を実行すると、別名データ型が作成され、特定のデータベースの sys.types カタログ ビューに表示されます。別名データ型をすべての新しいユーザー定義データベース内で使用できるようにする必要がある場合は、model に追加してください。作成した別名データ型は、CREATE TABLE または ALTER TABLE で使用できます。別名データ型にデフォルトやルールをバインドすることもできます。sp_addtype を使用して作成したすべてのスカラ別名データ型は、dbo スキーマに格納されます。

別名データ型は、データベースの既定の照合順序を継承します。別名データ型の列と変数の照合順序は、Transact-SQL の CREATE TABLE、ALTER TABLE、DECLARE @local_variable ステートメントで定義されます。データベースの既定の照合順序を変更すると、該当するデータ型の新しい列と変数にだけ新しい照合順序が適用されます。既存の列と変数の照合順序は変更されません。

セキュリティに関する注意 セキュリティに関する注意

旧バージョンとの互換性のため、データベース ロール public には自動的に、sp_addtype を使用して作成した別名データ型の REFERENCES 権限が与えられます。sp_addtype ではなく CREATE TYPE ステートメントを使用して別名データ型を作成した場合は、自動的に権限が与えられないことに注意してください。

SQL Servertimestamptablexmlvarchar(max)nvarchar(max)、または varbinary(max) 型を使用して別名データ型を定義することはできません。

db_owner 固定データベース ロールまたは db_ddladmin 固定データベース ロールのメンバシップが必要です。

A. NULL 値を許容しない別名データ型を作成する

次の例では、SQL Server の varchar 型を基にした ssn (social security number : 社会保障番号) という別名データ型を作成します。ssn 型は、11 桁の社会保障番号 (999-99-9999) を格納する列で使用されます。この列で NULL 値は許容されません。

varchar(11) には区切り記号 (かっこ) が含まれているため、単一引用符で囲みます。

USE master;
GO
EXEC sp_addtype ssn, 'varchar(11)', 'NOT NULL';
GO

B. NULL 値を許容する別名データ型を作成する

次の例では、NULL 値を許容する、datetime 型に基づく birthday という別名データ型を作成します。

USE master;
GO
EXEC sp_addtype birthday, datetime, 'NULL';

C. 追加の別名データ型を作成する

次の例では、国内および海外用の電話番号と FAX 番号の両方に対して、telephonefax という 2 つの別名データ型を追加作成します。

USE master;
GO
EXEC sp_addtype telephone, 'varchar(24)', 'NOT NULL';
GO
EXEC sp_addtype fax, 'varchar(24)', 'NULL';
GO

コミュニティの追加

追加
表示:
© 2014 Microsoft