关于扩展属性

来源:互联网 发布:网络诈骗萌二妞 编辑:程序博客网 时间:2024/05/17 06:57

今天在ms-sqlserver看到3篇帖子,

http://community.csdn.net/Expert/topic/4308/4308002.xml?temp=.6209986

http://community.csdn.net/Expert/topic/4307/4307936.xml?temp=5.398196E-02

http://community.csdn.net/Expert/topic/4304/4304163.xml?temp=.7210962

同时问如何增加字段描述,取得字段描述,我也有回答,也看到其他同仁的答案,这里整理一下!

新增:我们知道在SQL Server 2000中,Microsoft添加了扩展属性,用于帮助用户在多个数据库对象上定义和操作用户定义的属性。

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