/*
在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。有效的输入是 TABLEVIEWPROCEDUREFUNCTIONDEFAULTRULE 和 NULL
 
[ @level1name = ] { 'level1_object_name' }
 
指定的 1 级对象类型的名称。level1_object_name 的数据类型为 sysname,其默认值为 NULL
 
[ @level2type = ] { 'level2_object_type' }
 
2 级对象的类型。level2_object_type 的数据类型为 varchar(128),其默认值为 NULL。有效的输入是 COLUMN、PARAMETER、INDEXCONSTRAINTTRIGGER 和 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'表'NULLNULL
 
--为字段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 

[转]Sql Server 给表与字段添加描述的更多相关文章

  1. SQL Server 给表和字段添加说明

    .添加表说明 EXECUTE sp_addextendedproperty N'MS_Description','表说明',N'user',N'dbo',N'table',N'表名',NULL,NUL ...

  2. Sql Server连表查询字段为null

    这是一个坑,并且是有毒的坑. 一不小心我就掉进了这个坑里面,费了好大的力气这才从坑里面爬出来. 话不多说,开始吹BB啦. 一.简单说说遇到的问题: 连表查询,一对多. 出现 int,  smallda ...

  3. SQL Server 将一个表中字段的值复制到另一个表的字段中

    具体方法如下 一:update 表2 set (要插入的列名)= select 表1.某一列 from 表1 left jion 表2 on 表1和表2的关联 where ..... 二:update ...

  4. oracle给字段添加描述

    oracle中,我们有时候需要给表的字段添加描述.用以下语句即可. alter table a add b varchar2(2); comment on column a.b  is '这是表a的字 ...

  5. 向SQL Server 现有表中添加新列并添加描述.

    注: sql server 2005 及以上支持. 版本估计是不支持(工作环境2005,2008). 工作需要, 需要向SQL Server 现有表中添加新列并添加描述. 从而有个如下存储过程. (先 ...

  6. sql server 给表加说明,给列/字段加说明

    --sql server给表加说明: --banner EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Banner ...

  7. 用sql 语句给字段添加描述

    用sql 语句给字段添加描述 IF not exists (SELECT * FROM ::fn_listextendedproperty (NULL, 'user', 'dbo', 'table', ...

  8. 千万级SQL Server数据库表分区的实现

    千万级SQL Server数据库表分区的实现 2010-09-10 13:37 佚名 数据库 字号:T | T 一般在千万级的数据压力下,分区是一种比较好的提升性能方法.本文将介绍SQL Server ...

  9. Access sql语句创建表及字段类型

    创建一张空表: Sql="Create TABLE [表名]" 创建一张有字段的表: Sql="Create TABLE [表名]([字段名1] MEMO NOT NUL ...

随机推荐

  1. solr与.net系列课程(二)solr的配置文件及其含义

    solr与.net系列课程(二)solr的配置文件及其含义  本节内容还是不会涉及到.net与数据库的内容,但是不要着急,这都是学时solr必学要掌握的东西,solr可不是像其他的dll文件一样,只需 ...

  2. 水火难容:同步方法调用async方法引发的ASP.NET应用程序崩溃

    之前只知道在同步方法中调用异步(async)方法时,如果用.Result等待调用结果,会造成线程死锁(deadlock).自己也吃过这个苦头,详见等到花儿也谢了的await. 昨天一个偶然的情况,造成 ...

  3. 你不得不知道的HTML5的新型标签

    <article>标签定义外部的内容.比如来自一个外部的新闻提供者的一篇新的文章,或者来自 blog 的文本,或者是来自论坛的文本.亦或是来自其他外部源内容. <aside>标 ...

  4. jdbc实现简单的增删改查

    先是Book类. 略 然后一个主页,写一个表单,提交Book的信息到AddBook. 略 AddBook.jsp连接jdbc,并向Book表插入. <%@ page language=" ...

  5. 一个比较常用的关于php下的mysql数据操作类

    <?php /************************************************************* MySql类封装: 首先连接数据库,需要有参数 参数如何 ...

  6. C语言实现单链表-02版

    我们在C语言实现单链表-01版中实现的链表非常简单: 但是它对于理解单链表是非常有帮助的,至少我就是这样认为的: 简单的不能再简单的东西没那么实用,所以我们接下来要大规模的修改啦: Problem 1 ...

  7. Leetcode 8 String to Integer (atoi) 字符串处理

    题意:将字符串转化成数字. 前置有空格,同时有正负号,数字有可能会溢出,这里用long long解决(leetcode用的是g++编译器),这题还是很有难度的. class Solution { pu ...

  8. Visual Studio 2013 无法正常打开项目文件

    提示:无法打开 vcxproj 因为此版本的应用程序不支持其项目类型 ,若要打开它 请使用支持此类型项目的版本. 检查  AppData\Roaming\Microsoft\VisualStudio\ ...

  9. 努力学习 HTML5 (4)—— 浏览器对语义元素的支持情况

    经过上一节学习,我们已经建立一个结构良好的页面,如果在旧版的 IE 浏览器中浏览可能这些语义元素无法显示. 毕竟这些语义元素什么也不做,要支持它们,只要让浏览器把它们当做普通的 <div> ...

  10. 【转】使用Cocoapods创建私有podspec

    Cocoapods是非常好用的一个iOS依赖管理工具,使用它可以方便的管理和更新项目中所使用到的第三方库,以及将自己的项目中的公共组件交由它去管理.Cocoapods的介绍及优点本文就不在赘述,我开始 ...