4 SQL Server中的缺省对象(Default)
缺省对象是SQL Server中的一种数据库对象,类似于缺省值约束,但缺省对象只适用于INSERT语句中为未指定数据的列值设置缺省值。下面介绍: 创建缺省对象 应用缺省对象 删除缺省对象 缺省对象和缺省值约束的区别:缺省对象和缺省值约束有些类似,但两者存在一些区别,缺省值约束是在用CREATE TABLE 或 ALTER TABLE语句定义表结构时定义,它与表定义存储在一起,所以,在删除表时,缺省值约束被自动删除。而缺省对象则需要使用CREATE DEFAULT语句定义,它作为一种数据库对象单独存储,所以它可以被多次应用于不同列或用户定义的数据类型。在删除表时不能删除缺省对象,而需要使用DROP DEFAULT语句删除。 (1) 创建缺省对象 T_SQL中,创建缺省数据库对象的语句格式: CREATE DEFAULT [owner.] default_name AS constant_expression 其中, default_name :缺省对象名。 constant_expression:缺省对象值的计算表达式。 例如: CREATE DEFAULT DF_char AS 'unknown'CREATE DEFAULT DF_date AS 'Feb 21 2000'CREATE DEFAULT DF_binary AS oxFFFFF00000 CREATE DEFAULT DF_phone AS'(010)0000-0000' (2) 绑定和应用缺省对象 要删除缺省对象时,必须先解除缺省对象与指定列或用户定义数据类型之间的关联。 ● 解除缺省对象与相应对象关联的语句格式: sp_unbindefault objname [, futureonly] objname: 为缺省对象所关联到的列名或用户定义的数据类型名称。 futureonly:只用于用户定义数据类型。且只对未来的缺省值起作用,不影响已存在的缺省值。 例如,解除DF_phone和 customer.phone_col列的关联: sp_unbindefault customer.phone_col 解除缺省对象的关联后,该对象仍存在于当前数据库中,这时可执行DROP DEFAULT语句将其删除。 ● 删除缺省对象的语句格式: DROP DEFAULT default_name [,...n] 一个DROP 语句可以同时删除多个缺省对象。 例如,下面的语句删除前面建立的DF_char,DF_date,DF_binary,DF_phone等缺省对象: DROP DEFAULT DF_char, DF_date, DF_binary, DF_phone |