でカスタムデータ型を作成する理由を知りたい場合は、NULL以外の整数に基づいてSQL Serverをベースにして、値は、私はテーブル定義(単一の宣言された変数)ではないときに、この値を取得することはできません。 は、ここに私のコードです:SQL ServerカスタムNULLでない既定値のデータ型がNULLを返す
BEGIN TRAN;
GO
CREATE TYPE Province FROM INT NOT NULL;
GO
CREATE DEFAULT ProvinceDefault AS 4;
GO
EXEC sp_bindefault
'ProvinceDefault',
'Province';
GO
DECLARE @Province Province;
SELECT @Province;
GO
ROLLBACK TRAN;
それは返すNULL
それはdefaultをオブジェクトのちょうど性質である、それは列だけに適用されます。 [MSDN](https://msdn.microsoft.com/en-us/library/ms173565.aspx)states * "列またはエイリアスデータ型にバインドされている場合、既定では列に挿入する値を指定します。挿入時に値が明示的に指定されていない場合、オブジェクトがバインドされている(またはエイリアスデータ型の場合はすべての列に)。変数のデフォルト値を指定することはできません。 'CREATE DEFAULT'は非難されているので、あなたはおそらくそれを一緒に使うのは避けるべきです。 – GarethD