具有默认值的SQL Server自定义非null数据类型返回null

时间:2017-02-17 10:38:19

标签: 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

1 个答案:

答案 0 :(得分:0)

MSDN: -

[@ objname =]' object_name'

要绑定默认值的表和列的名称或别名数据类型。 object_name是nvarchar(776),没有默认值。无法使用varchar(max),nvarchar(max),varbinary(max),xml或 CLR user-defined types object_name

链接:https://msdn.microsoft.com/en-us/library/ms177503.aspx