SQL Server扩展属性的增、删、改、查
使用 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扩展属性的增、删、改、查的更多相关文章
- 好用的SQL TVP~~独家赠送[增-删-改-查]的例子
以前总是追求新东西,发现基础才是最重要的,今年主要的目标是精通SQL查询和SQL性能优化. 本系列主要是针对T-SQL的总结. [T-SQL基础]01.单表查询-几道sql查询题 [T-SQL基础] ...
- iOS sqlite3 的基本使用(增 删 改 查)
iOS sqlite3 的基本使用(增 删 改 查) 这篇博客不会讲述太多sql语言,目的重在实现sqlite3的一些基本操作. 例:增 删 改 查 如果想了解更多的sql语言可以利用强大的互联网. ...
- python学习-62 类属性的增 删 该 查
类属性 1.类属性 类属性又称为静态变量,或者是静态数据.这些数据是与它们所属的类对象绑定的,不依赖于任何类实例. 2.增 删 改 查 class zoo: country = 'china' def ...
- iOS FMDB的使用(增,删,改,查,sqlite存取图片)
iOS FMDB的使用(增,删,改,查,sqlite存取图片) 在上一篇博客我对sqlite的基本使用进行了详细介绍... 但是在实际开发中原生使用的频率是很少的... 这篇博客我将会较全面的介绍FM ...
- django ajax增 删 改 查
具于django ajax实现增 删 改 查功能 代码示例: 代码: urls.py from django.conf.urls import url from django.contrib impo ...
- ADO.NET 增 删 改 查
ADO.NET:(数据访问技术)就是将C#和MSSQL连接起来的一个纽带 可以通过ADO.NET将内存中的临时数据写入到数据库中 也可以将数据库中的数据提取到内存中供程序调用 ADO.NET所有数据访 ...
- MVC EF 增 删 改 查
using System;using System.Collections.Generic;using System.Linq;using System.Web;//using System.Data ...
- SQL SERVER 扩展属性的操作方法
将数据库迁移到 Azure SQL 数据库时出现错误,不支持扩展属性“MS_Description”,因此就如何操作扩展属性进行在此记录. 查询扩展属性 SELECT *,OBJECT_NAME(ma ...
- Mysql基本操作语句 增-删-改-查
增 INSERT INTO 表名(属性名1,属性名2) VALUES(值1,值2) 删 DELETE FROM <表名> [WHERE 子句] [ORDER BY 子句] [LIMIT 子 ...
随机推荐
- hdu 2527:Safe Or Unsafe(数据结构,哈夫曼树,求WPL)
Safe Or Unsafe Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)To ...
- WPF DataGrid DataGridTemplateColumn 控制模板中控件
<DataGrid Name="DG"> <DataGrid.Columns> < ...
- 数据库存入数据后id保持不变,或者直接报错
数据库存入数据后id保持不变,且添加的数据一直在进行覆盖 或者直接报错 数据库存入数据后id保持不变,且添加的数据一直在进行覆盖 原因是: 之前注释掉了loadimage();在该函数中含有建立新的记 ...
- jquery书写一个简易的二级联动
先用php生成一个json数组示例如下 JSON_UNESCAPED_UNICODE 是对汉字进行处理的参数 然后HTML代码如下 把那个json_city赋值成我们用php生成的json即可 < ...
- 在visual studio中运行C++心得
1.在visual studio中建立C++项目 (1)新建->项目->空项目 C++ (2)右击项目->添加->新建项->C++文件(.app) (3编写C++文件 ...
- Echarts中axislabel文字过长导致显示不全或重叠
最近在使用Echarts的时候,遇到点问题就是xAxis文字过长导致x轴的文字显示不全. 解决方案如下: 1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HT ...
- c#基础 第四讲
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threa ...
- 理解CSS3 isolation: isolate的表现和作用
转自:http://www.zhangxinxu.com/wordpress/?p=5155 只要元素可以创建层叠上下文,就可以阻断mix-blend-mode! 于是,不仅仅是isolation:i ...
- Python全栈day20(装饰器基本理论)
一,什么是装饰器 装饰器:本质就是函数,功能是为其他函数添加附加功能 原则 1,不修改被修饰函数的源代码 2,不修改被修饰函数的调用方式 举例说明:有一个求和函数要求就算出函数的运行时间 正常代码应该 ...
- Rsync文件同步机备份工具使用
一,Rsync简介 Rsync是一款开源的,快速的,多功能的,可实现全量及增量的本地或远程数据同步的优秀工具.适用于多种操作平台. 全称是Remote synchronization 具有可使本地和远 ...