SQL创建表时候添加字段说明方法

/*
在SQL语句中通过系统存储过sp_addextendedproperty可为表字段添加上动态的说明(备注)下面是SQL SERVER帮助文档中对sp_addextendedproperty存储过程的描述
语法
*/
sp_addextendedproperty
     [ @ name  = ] {  'property_name'  }
     [ , [ @value = ] {  'value'  }
         [ , [ @level0type = ] {  'level0_object_type'  }
          , [ @level0name = ] {  'level0_object_name'  }
             [ , [ @level1type = ] {  'level1_object_type'  }
              , [ @level1name = ] {  'level1_object_name'  }
                     [ , [ @level2type = ] {  'level2_object_type'  }
                      , [ @level2name = ] {  'level2_object_name'  }
                     ]
             ]
         ]
     ]
 
参数
[ @ name  = ] {  'property_name'  }
 
要添加的属性名称。property_name 的数据类型为 sysname,它不能是  NULL 。名称可能还包括空白或非字母数字字符串和二进制值。
 
[ @value = ] {  'value'  }
 
将要与属性相关联的值。value 的数据类型为 sql_variant,带有默认设置  NULL 。value 的大小不能超过 7,500 字节;否则 SQL Server 会产生错误。
 
[ @level0type = ] {  'level0_object_type'  }
 
用户或用户定义类型。level0_object_type 的数据类型为  varchar (128),其默认值为  NULL 。有效的输入是  USER 、TYPE 和  NULL
 
[ @level0name = ] {  'level0_object_name'  }
 
指定的 0 级对象类型的名称。level0_object_name 的数据类型为 sysname,其默认值为  NULL
 
[ @level1type = ] {  'level1_object_type'  }
 
1 级对象的类型。level1_object_type 的数据类型为  varchar (128),其默认值为  NULL 。有效的输入是  TABLE VIEW PROCEDURE FUNCTION DEFAULT RULE  和  NULL
 
[ @level1name = ] {  'level1_object_name'  }
 
指定的 1 级对象类型的名称。level1_object_name 的数据类型为 sysname,其默认值为  NULL
 
[ @level2type = ] {  'level2_object_type'  }
 
2 级对象的类型。level2_object_type 的数据类型为  varchar (128),其默认值为  NULL 。有效的输入是  COLUMN 、PARAMETER、 INDEX CONSTRAINT TRIGGER  和  NULL
 
[ @level2name = ] {  'level2_object_name'  }
 
指定的 2 级对象类型的名称。level2_object_name 的数据类型为 sysname,其默认值为  NULL
 
返回代码值
0(成功)或 1(失败)
 
注释
系统对象不允许有扩展属性。
 
对象是按级别区分的,0 级为最高,2 级为最低。当用户添加、更新或删除扩展属性时,必须指定所有更高级别的对象。例如,如果用户要向 1 级对象添加扩展属性,就必须指定所有 0 级信息。如果用户要向 2 级对象添加扩展属性,则必须提供关于 0 级和 1 级的所有信息。
 
在每个级别上,对象类型和对象名可唯一地标识对象。如果指定了一个对中的任一方,则必须指定另一方。
 
给定了有效 property_name 和 value,如果没有任何对象类型和名称,则属性属于当前数据库。如果指定对象类型和名称,则还必须指定父对象和类型。否则,SQL Server 会产生错误。
 
权限
db_owner 和 db_ddladmin 固定数据库角色的成员可以将扩展属性添加到任何对象中。用户可以为他们所拥有的对象添加扩展属性。然而,只有 db_owner 可以将属性添加到用户名称中。
下面是我在使用过程中对表ClipInfo的字段通过sp_addextendedproperty存储过程加的说明,
ALTER  TABLE  [dbo].[ClipInfo]  ADD  CONSTRAINT  [PK_CLIPINFO]  PRIMARY  KEY  CLUSTERED ([ClipNum])
GO
sp_addextendedproperty N 'MS_Description' , N '卡号' 'USER' , N 'dbo' 'TABLE' , N 'ClipInfo' 'COLUMN' , N 'ClipNum'
GO
sp_addextendedproperty N 'MS_Description' , N '密码' 'USER' , N 'dbo' 'TABLE' , N 'ClipInfo' 'COLUMN' , N 'Passd'
GO
sp_addextendedproperty N 'MS_Description' , N '所属地' 'USER' , N 'dbo' 'TABLE' , N 'ClipInfo' 'COLUMN' , N 'ClipArea'
GO
sp_addextendedproperty N 'MS_Description' , N '创建时间' 'USER' , N 'dbo' 'TABLE' , N 'ClipInfo' 'COLUMN' , N 'CreateTime'
GO
sp_addextendedproperty N 'MS_Description' , N '修改时间' 'USER' , N 'dbo' 'TABLE' , N 'ClipInfo' 'COLUMN' , N 'UpdateTime'
GO
sp_addextendedproperty N 'MS_Description' , N '状态' 'USER' , N 'dbo' 'TABLE' , N 'ClipInfo' 'COLUMN' , N 'ClipState'
GO
 
select  from  sys.extended_properties a
where  a.major_id=object_id( 'ta' )
 
select  from  sys.extended_properties
select  from  syscolumns  where  id=object_id( 'ta' )
 
列出表 "t" 中所有列的所有扩展属性:
SELECT    *
FROM    ::fn_listextendedproperty( NULL , 'user' , 'dbo' , 'table' , 'ta' , 'column' , default )
列出表 "t" 中列col1的描述属性:
SELECT    value
FROM    ::fn_listextendedproperty( 'MS_Description' , 'user' , 'dbo' , 'table' , 'ta' , 'column' , 'id' )
添加表 "t" 中列col1的描述属性:
EXEC    sp_addextendedproperty    'MS_Description' , '列1' , 'user' ,dbo, 'table' , 't' , 'column' ,col1
删除表 "t" 中列col1的描述属性:
EXEC    sp_dropextendedproperty    'MS_Description' , 'user' ,dbo, 'table' , 't' , 'column' ,col1
更新表 "t" 中列col1的描述属性:
EXEC    sp_updateextendedproperty    'MS_Description' , '字段1' , 'user' ,dbo, 'table' , 't' , 'column' ,col1
 
--表及字段描述信息处理示例
 
--创建表
create  table  表(a1  varchar (10),a2  char (2))
 
--为表添加描述信息
EXECUTE  sp_addextendedproperty N 'MS_Description' '人员信息表' , N 'user' , N 'dbo' , N 'table' , N '表' NULL NULL
 
--为字段a1添加描述信息
EXECUTE  sp_addextendedproperty N 'MS_Description' '姓名' , N 'user' , N 'dbo' , N 'table' , N '表' , N 'column' , N 'a1'
 
--为字段a2添加描述信息
EXECUTE  sp_addextendedproperty N 'MS_Description' '性别' , N 'user' , N 'dbo' , N 'table' , N '表' , N 'column' , N 'a2'
 
--更新表中列a1的描述属性:
EXEC  sp_updateextendedproperty  'MS_Description' , '字段1' , 'user' ,dbo, 'table' , '表' , 'column' ,a1
 
--删除表中列a1的描述属性:
EXEC  sp_dropextendedproperty  'MS_Description' , 'user' ,dbo, 'table' , '表' , 'column' ,a1
 
--删除测试
drop  table 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值