Sql Server中的扩展属性的使用与查询 [转]
在Sql server 2000中,microsoft添加了扩展属性,用于帮助用户在多个数据库对象上定义和操作用户定义的属性。您可以使用这些用户定义的属性向您的数据库添加元数据
您可以使用系统存储过程sp_addextendedproperty、sp_updateextendedproperty及sp_dropextendedproperty来管理这些属性。此外,您可以使用系统函数fn_listextendedproperty()检索现有的属性值。microsoft使用扩展属性来写入和管理描述值,它与sql server企业管理器表设计视图中的列相关联。
使用系统存储过程sp_addetendedproperty加入某表某列的扩展属性
如:
下面的示例将属性 ('caption,' 'Employee ID') 添加到表"T1"的"ID"列中。
您可以使用系统存储过程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
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