zoukankan      html  css  js  c++  java
  • MS SQL入门基础:自定义数据类型

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

      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.

      注意:如果删除由表或其它数据库在使用的用户自定义数据类型,将会被系统拒绝。

    申明

    非源创博文中的内容均收集自网上,若有侵权之处,请及时联络,我会在第一时间内删除.再次说声抱歉!!!

    博文欢迎转载,但请给出原文连接。

  • 相关阅读:
    Centos6.4 cobbler安装要点
    zabbix oracle监控插件orabbix部署安装
    CPP
    基于curl 的zabbix API调用
    oracle 存储过程
    sqlplus乱码
    Intent之对象传递(Parcelable传递对象和对象集合)
    IOS压缩解压缩
    深入浅出java静态代理和动态代理
    c语言用rand() 函数,实现random(int m)
  • 原文地址:https://www.cnblogs.com/Athrun/p/832450.html
Copyright © 2011-2022 走看看