在sql server 2000中,microsoft添加了扩展属性,用于帮助用户在多个数据库对象上定义和操作用户定义的属性。您可以使用这些用户定义的属性向您的数据库添加元数据
您可以使用系统存储过程sp_addextendedproperty、sp_updateextendedproperty及sp_dropextendedproperty来管理这些属性。此外,您可以使用系统函数fn_listextendedproperty()检索现有的属性值。microsoft使用扩展属性来写入和管理描述值,它与sql server企业管理器表设计视图中的列相关联。
使用系统存储过程sp_addetendedproperty加入某表某列的扩展属性
如:
下面的示例将属性 ('caption,' 'Employee ID') 添加到表"T1"的"ID"列中。
CREATE   table T1 (id int , name char (20))
GO
EXEC   sp_addextendedproperty 'caption', 'Employee ID', 'user', dbo, 'table', T1, 'column', id

 

 

SqlServer帮助中队扩展属性的描述是: 
The Extended Properties property sets or retrieves provider-specific connection information that cannot be explicitly described through the property mechanism.
对于扩展属性有如下操作: 
exec sp_addextendedproperty N'MS_Description', N'字段描述', N'user', N'dbo', 

N'table', N'表名', N'column', N'字段名' 
GO 

例如:EXEC sp_addextendedproperty N'MS_Description',N'地址',N'user', dbo,N'table', 

N'a', N'column', a_add 
GO--我的表是a,要给字段a_add加上字段描述:地址 

其他相关: 

删除: 

EXEC sp_dropextendedproperty N'MS_Description',N'user', dbo,N'table', N'表名', 

N'column', 字段名 

修改: 

EXEC sp_updateextendedproperty N'MS_Description', N'字段描述', N'user', 

dbo,N'table',N'表名', 'column', 字段 

至于查询出来,sql server有提供系统函数fn_listextendedproperty (): 

--获取某一个字段的描述 
SELECT * 
FROM ::fn_listextendedproperty (NULL, 'user', 'dbo', 'table', '表名', 'column', 

default)--其他变数,按照你的要求你照写即可,只要表名换成你的 
where objname = '字段名' 

另外也可以自己查询系统表: 

SELECT o.name AS tableName, c.name AS columnName, p.[value] AS Description 
FROM sysproperties p INNER JOIN 
sysobjects o ON o.id = p.id INNER JOIN 
syscolumns c ON p.id = c.id AND p.smallid = c.colid 
WHERE (p.name = 'MS_Description') 
ORDER BY o.name 

 

 

转载 http://www.cnblogs.com/kid-li/archive/2005/12/31/308684.html

posted on 2013-02-18 15:03  潇洒地走  阅读(2755)  评论(0编辑  收藏  举报