我增加了两个扩展属性到用户定义数据类型,这个数据类型可以当作元数据。在这个例子中,我包括了作者(创建者)和目的(建立),如下所示:
图三 用户定义数据类型、规则和默认的T-SQL执行
下面列出了用户定义数据类型、规则和默认的代码段例子。
用来创建 SQL Server用户定义数据类型的句子 |
sp_addtype [ @typename = ] type, [ @phystype = ] system_data_type [ , [ @nulltype = ] 'null_type' ] [ , [ @owner = ] 'owner_name' ] |
下面是从系统存储过程中选出来的四个参数的基本解释。
参数 | 解释 |
@typename | 正在创建的新用户定义数据类型的名称 |
@phystype | SQL Server的基本系统数据类型 |
@nulltype | 指定空值是否可以在这种数据类型中使用 |
@owner | 正在创建的用户定义数据类型的属主 |
以下是在上面SSMS中使用的默认和规则的例子。
默认和规则代码的示例 |
-- Create a default value for phone number to be used in example USE AdventureWorks GO CREATE DEFAULT Default_PhNo AS 'UnknownNumber' GO -- Create a rule for phone number to be used in example -- Number will be in format +92-3335409953 or UnknownNumber by default USE AdventureWorks GO CREATE RULE rule_PhNo AS (@phone='UnknownNumber') OR (LEN(@phone)=14 AND SUBSTRING(@phone,1,1)= '+' AND SUBSTRING(@phone,4,1)= '-') GO |
在最后的代码段,我们将把规则和默认结合到用户定义数据类型中:
用来把默认和规则结合到用户定义数据类型中的命令 |
-- To bind a default 'Default_PhNo' to user defined data type 'PhoneNumb' EXEC sp_bindefault 'Default_PhNo', 'PhoneNumb' GO -- To bind a rule 'rule_PhNo' to user defined data type 'PhoneNumb' EXEC sp_bindrule 'rule_PhNo', 'PhoneNumb' GO |