[转]Sql Server 给表与字段添加描述
/*
在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
表
[转]Sql Server 给表与字段添加描述的更多相关文章
- SQL Server 给表和字段添加说明
.添加表说明 EXECUTE sp_addextendedproperty N'MS_Description','表说明',N'user',N'dbo',N'table',N'表名',NULL,NUL ...
- Sql Server连表查询字段为null
这是一个坑,并且是有毒的坑. 一不小心我就掉进了这个坑里面,费了好大的力气这才从坑里面爬出来. 话不多说,开始吹BB啦. 一.简单说说遇到的问题: 连表查询,一对多. 出现 int, smallda ...
- SQL Server 将一个表中字段的值复制到另一个表的字段中
具体方法如下 一:update 表2 set (要插入的列名)= select 表1.某一列 from 表1 left jion 表2 on 表1和表2的关联 where ..... 二:update ...
- oracle给字段添加描述
oracle中,我们有时候需要给表的字段添加描述.用以下语句即可. alter table a add b varchar2(2); comment on column a.b is '这是表a的字 ...
- 向SQL Server 现有表中添加新列并添加描述.
注: sql server 2005 及以上支持. 版本估计是不支持(工作环境2005,2008). 工作需要, 需要向SQL Server 现有表中添加新列并添加描述. 从而有个如下存储过程. (先 ...
- sql server 给表加说明,给列/字段加说明
--sql server给表加说明: --banner EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Banner ...
- 用sql 语句给字段添加描述
用sql 语句给字段添加描述 IF not exists (SELECT * FROM ::fn_listextendedproperty (NULL, 'user', 'dbo', 'table', ...
- 千万级SQL Server数据库表分区的实现
千万级SQL Server数据库表分区的实现 2010-09-10 13:37 佚名 数据库 字号:T | T 一般在千万级的数据压力下,分区是一种比较好的提升性能方法.本文将介绍SQL Server ...
- Access sql语句创建表及字段类型
创建一张空表: Sql="Create TABLE [表名]" 创建一张有字段的表: Sql="Create TABLE [表名]([字段名1] MEMO NOT NUL ...
随机推荐
- ASP.NET MVC学习之过滤器篇(2)
下面我们继续之前的ASP.NET MVC学习之过滤器篇(1)进行学习. 3.动作过滤器 顾名思义,这个过滤器就是在动作方法调用前与调用后响应的.我们可以在调用前更改实际调用的动作,也可以在动作调用完成 ...
- EmberJs之Ember-Data
写在前面 最近比较忙,换了新工作还要学习很多全新的技术栈,并给自己找了很多借口来不去坚持写博客.常常具有讽刺意味的是,更多剩下的时间并没有利用而更多的是白白浪费,也许这就是青春吧,挥霍吧,这不是我想要 ...
- 设计模式之美:Proxy(代理)
索引 别名 意图 结构 参与者 适用性 效果 相关模式 实现 实现方式(一):使用相同 Subject 接口实现 Proxy. 别名 Surrogate 意图 为其他对象提供一种代理以控制对这个对象的 ...
- AngularJS快速入门指南06:过滤器
thead>tr>th, table.reference>tbody>tr>th, table.reference>tfoot>tr>th, table ...
- Spring MVC + MyBatis整合(IntelliJ IDEA环境下)
一些重要的知识: mybais-spring.jar及其提供的API: SqlSessionFactoryBean: SqlSessionFactory是由SqlSessionFactoryBuild ...
- JS函数和变量
JS函数和变量 函数: 函数是由事件或者当它被调用时执行的可重复使用的代码块. 是一个独立的代码块,实现特定功能模块. 函数他不进行调用触发的话,不会自己主动执行. 像ATM机一样,不去取钱的话不会 ...
- JS open App(未安装就跳转下载页面)
直接上代码var APPCommon = { downAppURl : "http://**/",//下载APP地址 downWeixin: "http://**&quo ...
- 利用jsoup爬虫工具,爬取数据,并利用excel导出
import java.io.BufferedInputStream; import java.io.BufferedReader; import java.io.FileInputStream; i ...
- 在主方法中定义一个大小为50的一维整型数组,数组i名为x,数组中存放着{1,3,5,…,99}输出这个数组中的所有元素,每输出十个换一行
package hanqi; import java.util.Scanner; public class Test7 { public static void main(String[] args) ...
- Python快速上手JSON指南
什么是JSON? 网上对JSON有很多教程,有各种各样的解释.一言以蔽之,JSON本质上是一种语法,这种语法的作用是把数据以字符串的形式存储.传递,多用于Web编程. JSON的典型示例 '{ &qu ...