为用户定义的数据类型绑定默认值示例.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