当前位置: 首页 > 图文教程 > 数据库 > MSSQL > SQL Server数据库技术(44)

MSSQL
黑客经验谈 MSSQL SA权限入侵的感悟
3个步骤结束网站恶梦-SQL注入隐患!
用人工智能自动对SQL语句进行重写
防范sql注入式攻击js版本
SQL Server 2005数据库镜像配置脚本示例
SQL Server和Oracle的真正区别
如何把Access的数据导入到Mysql中
看看自己掌握了多少SQL快捷键
SQL2005数据库转到SQL2000的步骤
SQL“多字段模糊匹配关键字查询”
高手是怎样炼成的:精妙SQL语句介绍
SQL Server 2000数据库崩溃后的补救措施
SQL Server日志清除的两种方法教程简介
教你快速掌握数据库设计范式的基本概念
远程连接SQL Server 2000服务器的解决方案
循序渐进讲解数据表的十二个设计原则
经验总结:讲解大型数据库的设计准则
开发环境下优化SQl语句的十个重要步骤
如何查看并导出数据表中字段的注释信息
SQL Server 2005改进后的几个实用新特性

MSSQL 中的 SQL Server数据库技术(44)


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-10-30   浏览: 105 ::
收藏到网摘: n/a

除了使用系统提供的数据类型外,用户还可以根据需要用自定义的数据类型来定义表的列或声明变量。

7.3.1 用Enterprise Manager 创建用户自定义数据类型
用Enterprise Manager 创建用户自定义数据类型的方法是:在Enterprise Manager 中选择要创建用户自定义类型的数据库,在数据库对象“User Defined Data Types”上单击右键,从开始菜单中选择“New User Defined Data Type”选项,就会出现如图7-3 所示的定义用户自定义数据类型属性对话框。可以在其中指定要定义的数据类型的名称、继承的系统数据类型、是否允许NULL 值等属性。单击“确定”按钮,则添加用户自定义数据类型对象到数据库中。


7.3.2 用系统存储过程Sp_addtype 创建用户自定义数据类型
系统存储过程为用户提供了命令方式创建自定义数据类型的途径。其语法如下:
sp_addtype [@typename =] type,
[@phystype =] system_data_type
[, [@nulltype =] 'null_type']
[ , [ @owner = ] 'owner_name' ]
各参数说明如下:

  • [@typename =] type
    指定用户定义的数据类型的名称。
  • [@phystype =] system_data_type
    指定相应的系统提供的数据类型的名称及定义。不能使用TIMESTAMP 数据类型。当所使用的系统数据类型有额外说明时,需用引号将其括起来,如:‘CHAR(8)’。
  • [@nulltype =] ‘null_type’
    指定用户自定义的数据类型的NULL 属性,其值可为‘NULL’ ‘NOT NULL’或 ‘NONULL’。缺省时与系统默认的NULL 属性相同。
  • [ @owner = ] 'owner_name' ]
    指定用户自定义的数据类型的所有者。
    用户自定义的数据类型的名称在数据库中应是惟一的,但不同名称的用户自定义数据类型可以有相同的类型定义。在使用CREATE TABLE 命令时,用户自定义数据类型的 NULL 属性可以被改变,但其长度定义不能更改。
例7-9: 定义生日数据类型。
exec sp_addtype birthday, datetime, 'not null'
运行结果如下:
(1 row(s) affected)
Type added.
例7-10:定义身份证号码数据类型。
exec sp_addtype cardid, 'char(18)', 'not null'
运行结果如下:
(1 row(s) affected)
Type added.
例7-11: 定义地址数据类型。
exec sp_addtype address, 'varchar(100)', 'not null'
运行结果如下:
(1 row(s) affected)
Type added.

7.3.3 删除用户自定义数据类型
可以在Enterprise Manager 中选择用户自定义类型后,从快捷菜单中选择“Delete” 选
项将其删除,也可以使用系统存储过程Sp_droptype 将其删除。其语法如下:
sp_droptype [@typename =] ‘type’
例7-12:
exec sp_droptype cardid

运行结果如下:
(1 row(s) affected)
(0 row(s) affected)
Type has been dropped.
注意:如果删除由表或其它数据库在使用的用户自定义数据类型,将会被系统拒绝。