为用户定义的数据类型绑定默认值示例.sql

/*--示例说明
 下面的示例演示了如何把默认值绑定到列和用户定义的数据类型
 并且演示了修改绑定于列和用户定义的数据类型的默认值时,这两者之间的差异。
--*/

--定义数据类型
EXEC sp_addtype 'ut_age','int','null'
GO

--为ut_age定义默认值
CREATE DEFAULT df_ut_age
AS 20
GO

--将默认值绑定到用户定义的数据类型
EXEC sp_bindefault 'df_ut_age','ut_age'
GO

--使用定义的数据类型
CREATE TABLE tb(
Name nvarchar(20),
AGE_u ut_age,
AGE int)
GO

--直接将默认值绑定到列
EXEC sp_bindefault 'df_ut_age','tb.AGE'
GO

--插入数据
INSERT tb VALUES('AA',DEFAULT,DEFAULT)
INSERT tb(Name) VALUES('BB')
SELECT * FROM tb
/*--结果
Name                  AGE_u     AGE
-------------------------------- ----------------- -----------
AA                   20          20
BB                   20          20
--*/
GO

--创建一个新默认值
CREATE DEFAULT df_ut_age1
AS 50
GO

--将新默认值绑定到列和用户定义的数据类型
EXEC sp_bindefault 'df_ut_age1','tb.AGE'
EXEC sp_bindefault 'df_ut_age1','ut_age',futureonly
INSERT tb(Name) VALUES('CC')
SELECT * FROM tb
/*--结果
绑定到列的默认值在新增数据时立即生效
使用futureonly绑定默认值到用户定义数据类型时时,不影响表中已经定义的列
Name                 AGE_u       AGE        
-------------------- ----------- -----------
AA                   20          20
BB                   20          20
CC                   20          50
--*/
GO

--删除测试
DROP TABLE tb
EXEC sp_droptype 'ut_age'
DROP DEFAULT df_ut_age,df_ut_age1

原文地址:https://www.cnblogs.com/dushu/p/2510694.html