使用 sql 语句创建表时,可以使用系统存储过程 sp_addextendedproperty 给字段添加描述说明。

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' }
]
]
]
]
[;]
 execute sys.sp_addextendedproperty
@name = N'MS_Description',
@value = N'要添加的属性信息',
@level0type = N'Schema',
@level0name = N'dbo',
@level1type = N'table',
@level1name = N'表名',
@level2type = N'column',
@level2name = N'列名'

参数:

[ @name ] = { 'property_name' }
是要添加的属性的名称。 property_name是sysname和不能为 NULL。 名称还可以包括空格或非字母数字字符串以及二进制值。

[ @value= ] { 'value'}
要与属性关联的值。 是sql_variant,默认值为 NULL。 value 的大小不能超过 7,500 个字节。

[ @level0type=] {level0_object_type}
级别 0 对象的类型。 level0_object_type是varchar (128),默认值为 NULL。

有效输入包括:ASSEMBLY、CONTRACT、EVENT NOTIFICATION、FILEGROUP、MESSAGE TYPE、PARTITION FUNCTION、PARTITION SCHEME、REMOTE SERVICE BINDING、ROUTE、SCHEMA、SERVICE、USER、TRIGGER、TYPE、PLAN GUIDE 和 NULL。

[ @level0name=] {level0_object_name}
所指定的级别 0 对象类型的名称。 level0_object_name是sysname默认值为 NULL。

[ @level1type=] {level1_object_type}
级别 1 对象的类型。 level1_object_type是varchar (128),默认值为 NULL。

有效的输入包括:AGGREGATE、DEFAULT、FUNCTION、LOGICAL FILE NAME、PROCEDURE、QUEUE、RULE、SYNONYM、TABLE、TABLE_TYPE、TYPE、VIEW、XML SCHEMA COLLECTION 和 NULL。

[ @level1name=] {level1_object_name}
所指定的级别 1 对象类型的名称。 level1_object_name是sysname,默认值为 NULL。

[ @level2type=] {level2_object_type}
级别 2 对象的类型。 level2_object_type是varchar (128),默认值为 NULL。

有效的输入包括:COLUMN、CONSTRAINT、EVENT NOTIFICATION、INDEX、PARAMETER、TRIGGER 和 NULL。

[ @level2name=] {level2_object_name}
所指定的级别 2 对象类型的名称。 level2_object_name是sysname,默认值为 NULL。

0(成功)或 1(失败)

 create table Department
(
D_ID int not null identity(1,1) primary key,
D_Name varchar(50) not null unique,
D_Url varchar(200) null ,
D_ImgUrl varchar(200) null,
D_ParentID int not null default(0),
D_Remark varchar(500) null
)
go --为表(Department)添加描述信息
execute sys.sp_addextendedproperty N'MS_Description',N'部门表',N'Schema',N'dbo',N'table',N'Department',null,null
go
--为字段添加描述信息 属性名称 要添加的属性信息 级别0 级别0 级别1 级别1 级别2 级别2
execute sys.sp_addextendedproperty N'MS_Description',N'部门表ID',N'Schema',N'dbo',N'table',N'Department',N'column',N'D_ID'
execute sys.sp_addextendedproperty N'MS_Description',N'部门名称',N'Schema',N'dbo',N'table',N'Department',N'column',N'D_Name'
execute sys.sp_addextendedproperty N'MS_Description',N'链接地址',N'Schema',N'dbo',N'table',N'Department',N'column',N'D_Url'
execute sys.sp_addextendedproperty N'MS_Description',N'节点图片地址',N'Schema',N'dbo',N'table',N'Department',N'column',N'D_ImgUrl'
execute sys.sp_addextendedproperty N'MS_Description',N'父节点ID',N'Schema',N'dbo',N'table',N'Department',N'column',N'D_ParentID'
execute sys.sp_addextendedproperty N'MS_Description',N'部门描述',N'Schema',N'dbo',N'table',N'Department',N'column',N'D_Remark'
go

PS: SQL Server 数据库中的对象分为三个级别:0、1 和 2。 级别 0 是最高级别,2 级为最低。当用户添加、更新或删除扩展属性时,必须指定所有更高级别的对象。例如,当将扩展属性添加到表列(级别 2)时,还必须指定包含该列的表名(级别 1)以及包含该表的架构(级别 0)。

为表和字段添加了扩展属性之后,可以使用扩展属性目录视图 sys.extended_properties 查询到所添加的扩展属性。

sys.extended_properties 针对当前数据库中的每个扩展属性返回一行。

 --查询所有的扩展属性
select * from sys.extended_properties --查询指定表的扩展属性
select * from sys.extended_properties where major_id=object_id('Department')

或者还可以使用函数 fn_listextendedproperty 查询扩展属性,fn_listextendedproperty 返回数据库对象的扩展属性值。

fn_listextendedproperty 语法:

 fn_listextendedproperty (
{ default | 'property_name' | NULL }
, { default | 'level0_object_type' | NULL }
, { default | 'level0_object_name' | NULL }
, { default | 'level1_object_type' | NULL }
, { default | 'level1_object_name' | NULL }
, { default | 'level2_object_type' | NULL }
, { default | 'level2_object_name' | NULL }
)

下面是 fn_listextendedproperty 返回的表的格式。

参数同上,使用方法如下:

 --查询指定表的所有列的扩展属性                                                                              default 即默认所有列
SELECT * FROM fn_listextendedproperty('MS_Description', 'Schema', 'dbo', 'table', 'Department', 'column', default) --查询指定表的指定列的扩展属性
SELECT * FROM fn_listextendedproperty('MS_Description', 'Schema', 'dbo', 'table', 'Department', 'column', 'D_Name')

使用 sp_updateextendedproperty 系统存储过程修改扩展属性。

sp_updateextendedproperty 语法:

 sp_updateextendedproperty
[ @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' }
]
]
]
]

0(成功)或 1(失败)

使用方法示例:

 --把表 Department 的扩展属性(表的描述)原值 ‘部门表’改为 ‘部门表测试修改’
execute sp_updateextendedproperty N'MS_Description',N'部门表测试修改',N'Schema',N'dbo',N'table',N'Department',null,null --把表 Department 的列 D_Remark 的扩展属性(列的描述)原值 ‘部门描述’改为 ‘部门详细描述’
execute sp_updateextendedproperty N'MS_Description',N'部门详细描述',N'Schema',N'dbo',N'table',N'Department',N'column',N'D_Remark'

使用 sp_dropextendedproperty 系统存储过程删除扩展属性。

sp_dropextendedproperty  语法:

 sp_dropextendedproperty
[ @name = ] { 'property_name' }
[ , [ @level0type = ] { 'level0_object_type' }
, [ @level0name = ] { 'level0_object_name' }
[ , [ @level1type = ] { 'level1_object_type' }
, [ @level1name = ] { 'level1_object_name' }
[ , [ @level2type = ] { 'level2_object_type' }
, [ @level2name = ] { 'level2_object_name' }
]
]
]
]

0(成功)或 1(失败)

使用方法示例:

 --删除表 Department 的扩展属性(表的描述)
execute sp_dropextendedproperty N'MS_Description',N'Schema',N'dbo',N'table',N'Department',null,null --删除表 Department 的列 D_Remark 的扩展属性(列的描述)
execute sp_dropextendedproperty N'MS_Description',N'Schema',N'dbo',N'table',N'Department',N'column',N'D_Remark'

扩展属性分很多种,添加表和字段的描述只是其中一种扩展属性,具体请看参考。

参考:

https://technet.microsoft.com/zh-cn/library/ms180047.aspx

SQL Server扩展属性的增、删、改、查的更多相关文章

  1. 好用的SQL TVP~~独家赠送[增-删-改-查]的例子

    以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化.  本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...

  2. iOS sqlite3 的基本使用(增 删 改 查)

    iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...

  3. python学习-62 类属性的增 删 该 查

    类属性 1.类属性 类属性又称为静态变量,或者是静态数据.这些数据是与它们所属的类对象绑定的,不依赖于任何类实例. 2.增 删 改 查 class zoo: country = 'china' def ...

  4. iOS FMDB的使用(增,删,改,查,sqlite存取图片)

    iOS FMDB的使用(增,删,改,查,sqlite存取图片) 在上一篇博客我对sqlite的基本使用进行了详细介绍... 但是在实际开发中原生使用的频率是很少的... 这篇博客我将会较全面的介绍FM ...

  5. django ajax增 删 改 查

    具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...

  6. ADO.NET 增 删 改 查

    ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访 ...

  7. MVC EF 增 删 改 查

    using System;using System.Collections.Generic;using System.Linq;using System.Web;//using System.Data ...

  8. SQL SERVER 扩展属性的操作方法

    将数据库迁移到 Azure SQL 数据库时出现错误,不支持扩展属性“MS_Description”,因此就如何操作扩展属性进行在此记录. 查询扩展属性 SELECT *,OBJECT_NAME(ma ...

  9. Mysql基本操作语句 增-删-改-查

    增 INSERT INTO 表名(属性名1,属性名2) VALUES(值1,值2) 删 DELETE FROM <表名> [WHERE 子句] [ORDER BY 子句] [LIMIT 子 ...

随机推荐

  1. 【BZOJ】1669: [Usaco2006 Oct]Hungry Cows饥饿的奶牛(lis)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1669 水题太严重 #include <cstdio> #include <cstr ...

  2. 【BZOJ】1653: [Usaco2006 Feb]Backward Digit Sums(暴力)

    http://www.lydsy.com/JudgeOnline/problem.php?id=1653 看了题解才会的..T_T 我们直接枚举每一种情况(这里用next_permutation,全排 ...

  3. Unity的 Stats 窗体, Batched、SetPass、Draw Call 等

    孙广东  2015.8.12 在Game View 中的右上角有一个统计数据 Stats button.当按下button时.覆盖窗体显示,可用于优化性能的实时渲染统计信息. 确切的统计数据显示生成目 ...

  4. 理解Loadrunner中的Browser Emulation Simulate

    案例 测试环境描述: 客户端 5台 Windows2000机器.服务器端  20台机器 一台F5(负载均衡设备,提供一个唯一的IP供客户端访问) 客户端绑定Host后,使用域名http://www.* ...

  5. 分页技巧_改进JSP页面中的公共分页代码_实现分页时可以有自定义的过滤与排序条件

    分页技巧__改进JSP页面中的公共分页代码 自定义过滤条件问题 只有一个url地址不一样写了很多行代码 public>>pageView.jspf添加 分页技巧__实现分页时可以有自定义的 ...

  6. 编程之美 set 19 连连看游戏设计

    题目 1. 怎么用简单的计算机模型来描述这个问题 ? 2. 怎么判断两个图像是否能相消 3. 怎么求出相同图形之间的最短距离(转弯数最少)? 4. 怎么确定目前处于死锁状态? 如何设计算法来解除死锁? ...

  7. iOS7Status bar适配

    一 Status bar重叠问题: - Zherui if ([[[UIDevicecurrentDevice] systemVersion] floatValue] >= 7.0) { sel ...

  8. tomcat下载与安装..使用和配置环境变量

    操作环境: xp, myEclipse6.5 tomcat6.0 正文: 一.下载 tomcat官方网站 http://tomcat.apache.org 在左边Download树形菜单中 点击最新版 ...

  9. 【BZOJ4883】[Lydsy2017年5月月赛]棋盘上的守卫 KM算法

    [BZOJ4883][Lydsy2017年5月月赛]棋盘上的守卫 Description 在一个n*m的棋盘上要放置若干个守卫.对于n行来说,每行必须恰好放置一个横向守卫:同理对于m列来说,每列 必须 ...

  10. angular中的动画效果

    用angular来形成动画效果的代码如下 <!DOCTYPE html> <html lang="en" ng-app="app"> & ...