我想知道爲什麼,當我在SQL Server基於非空整數創建自定義數據類型時,我將它分配給默認值值,當它不是一個表定義(只是一個聲明的變量)時,我無法獲得該值。 這裏是我的代碼:SQL Server自定義非空數據類型默認值爲空
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