sp_addtype (Transact-SQL)
適用対象:SQL Server
別名データ型を作成します。
重要
この機能は、 SQL Serverの将来のバージョンで削除される予定です。 新規の開発作業ではこの機能を使用しないようにし、現在この機能を使用しているアプリケーションは修正することを検討してください。 代わりに CREATE TYPE を使用してください。
構文
sp_addtype
[ @typename = ] N'typename'
, [ @phystype = ] N'phystype'
[ , [ @nulltype = ] 'nulltype' ]
[ , [ @owner = ] N'owner' ]
[ ; ]
引数
[ @typename = ] N'typename'
@typenameは sysname で、既定値はありません。
別名データ型の名前。 別名データ型名は、識別子の規則に従う必要があり、各データベースで一意である必要があります。 type は sysname で、既定値はありません。
[ @phystype = ] N'phystype'
別名データ型の基になっている物理データ型 (SQL Server 提供) です。 @phystypeは sysname で、既定値はなく、次のいずれかの値を指定できます。
- bigint、int、smallint、tinyint
- binary、 varbinary(n)、および image
- bit
- char(n)、 nchar(n)、 varchar(n)、 nvarchar(n)、**text、および ntext
- datetime と smalldatetime
- decimal(s, P) and numeric(s, P)
- float と real
- money と smallmoney
- sql_variant
- uniqueidentifier
埋め込み空白文字または句読点を含むすべてのパラメーターを囲む引用符が必要です。 使用可能なデータ型の詳細については、「データ型 (Transact-SQL)」を参照してください。
n
選択したデータ型の長さを示す負でない整数。
P
小数点の左と右の両方に格納できる 10 進数の最大合計数を示す負でない整数。 詳細については、「decimal 型と numeric 型 (Transact-SQL)」を参照してください。
s
小数点の右側に格納できる 10 進数の最大数を示す負以外の整数。有効桁数以下である必要があります。 詳細については、「decimal 型と numeric 型 (Transact-SQL)」を参照してください。
[ @nulltype = ] 'nulltype'
別名データ型で NULL 値をどのように処理するかを指定します。 @nulltypeは varchar(8) で、既定値は NULL
、単一引用符 ('NULL'
、'NOT NULL'
または'NONULL'
) で囲む必要があります。
@nulltypeが明示的に定義されていない場合は、現在の既定の null 許容値に設定されます。 システム関数を使用して、 GETANSINULL
現在の既定の null 許容を判断します。 これは、ステートメントを使用SET
して調整できます。ALTER DATABASE
NULL 値の許容属性は、明示的に定義してください。 @phystypeがビットで、@nulltypeが指定されていない場合、既定値は NOT NULL
.
Note
@nulltype パラメーターは、このデータ型の既定の null 許容値のみを定義します。 テーブルの作成時に別名データ型を使用するときに null 許容が明示的に定義されている場合は、定義された null 許容よりも優先されます。 詳細については、ALTER TABLE (Transact-SQL) と CREATE TABLE (Transact-SQL) に関するページを参照してください。
[ @owner = ] N'owner'
単に情報を示すためだけに特定されます。 サポートされていません。 将来の互換性は保証されません。
リターン コードの値
0
(成功) または 1
(失敗)。
結果セット
ありません。
解説
別名データ型の名前は、データベース内で一意であることが必要ですが、異なる名前の別名データ型で同じ定義を使用することは可能です。
実行中に sp_addtype
、特定のデータベースのカタログ ビューに sys.types
表示される別名データ型が作成されます。 別名データ型をすべての新しいユーザー定義データベースで使用できる必要がある場合は、それを model
. エイリアス データ型を作成した後は、そのデータ型を使用 CREATE TABLE
するか、エイリアス ALTER TABLE
データ型に既定値と規則をバインドすることもできます。 使用 sp_addtype
して作成されるすべてのスカラー エイリアス データ型は、スキーマに dbo
含まれています。
別名データ型は、データベースの既定の照合順序を継承します。 列の照合順序とエイリアス型の変数は、Transact-SQL CREATE TABLE
、 ALTER TABLE
および DECLARE @<local_variable>
ステートメントで定義されます。 データベースの既定の照合順序の変更は、型の新しい列と変数にのみ適用されます。既存の照合順序は変更されません。
重要
下位互換性のために、パブリック データベース ロールには、使用してsp_addtype
作成された別名データ型に対するアクセス許可が自動的に付与REFERENCES
されます。 代わりにsp_addtype
ステートメントを使用して別名データ型をCREATE TYPE
作成する場合、このような自動許可は行われません。
別名データ型は、SQL Server タイムスタンプ、テーブル、xml、varchar(max)、nvarchar(max)、または varbinary(max) データ型を使用して定義することはできません。
アクセス許可
db_ownerまたは固定データベース ロールdb_ddladminメンバーシップが必要です。
例
A. null 値を許可しないエイリアス データ型を作成する
次の例では、SQL Server で提供される varchar データ型に基づく別名データ型 ssn
(社会保障番号) を作成します。 データ型は 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 番号の両方に対してfax
、telephone
さらに 2 つの別名データ型を作成します。
USE master;
GO
EXEC sp_addtype telephone, 'varchar(24)', 'NOT NULL';
GO
EXEC sp_addtype fax, 'varchar(24)', 'NULL';
GO
関連するコンテンツ
- データベース エンジン ストアド プロシージャ (Transact-SQL)
- CREATE TYPE (Transact-SQL)
- CREATE DEFAULT (Transact-SQL)
- CREATE RULE (Transact-SQL)
- sp_bindefault (Transact-SQL)
- sp_bindrule (Transact-SQL)
- sp_droptype (Transact-SQL)
- sp_rename (Transact-SQL)
- sp_unbindefault (Transact-SQL)
- sp_unbindrule (Transact-SQL)
- システム ストアド プロシージャ (Transact-SQL)
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示