refer to http://hi.baidu.com/cp899/blog/item/96c17709c1571d980b7b8244.html
SQL Server 2000提供了三个系统存储过程和一个函数用于操作扩展属性 。它们分别是:
- sp_addextendedproperty (将新扩展属性添加到数据库对象中。)
- sp_updateextendedproperty (更新现有扩展属性的值。)
- sp_dropextendedproperty (除去现有的扩展属性。)
- fn_listextendedproperty (列出扩展属性)
下面使用一个例子来说明这些函数的用法。我打算在SQLServer 提供的示例数据库Northwind中的表Categories中的Column CategoryID添加一个Description扩展属性,用以描述CategoryID的用途,可以如下做:
sp_addextendedproperty 'Description', '目录编号', 'schema', 'dbo', 'table', 'Categories', 'column', 'CategoryID'
其中参数分别指定了扩展属性,扩展属性的值,0级对象是schema,0级对象名是dbo,一级对象类型是table,一级对象名是Gategories,二级对象是column,二级对象名是GategoryID 。
添加后,运行如下代码可看到添加后的结果 :
select * from ::fn_listextendedproperty ('Description', 'user', 'dbo', 'table', 'Categories', 'column', 'CategoryID')
其中的参数分别指定了扩展属性,0级对象,0级对象名,1级对象,1级对象名,2级对象,2级对象名。
得到的列表如下:
objtype objname name value
COLUMN CategoryID Description 目录编号
--为表TestTable添加描述信息
EXEC sp_AddExtendedProperty N'MS_Description' , '描述信息' , 'User' , 'dbo' , 'Table' , 'TestTable' , NULL , NULL
--列出表TestTable中所有列的所有扩展属性
SELECT * FROM ::fn_ListExtendedProperty ( NULL , 'User' , 'dbo' , 'Table' , 'TestTable' , 'column' , default )
--列出表TestTable中列TestCol的描述属性
SELECT * FROM ::fn_ListExtendedProperty ( 'MS_Description' , 'User' , 'dbo' , 'Table' , 'TestTable' , 'Column' , 'TestCol' )
EXEC sp_AddExtendedProperty 'MS_Description' , '描述信息' , 'user' , dbo , 'table' , 'TestTable' , 'column' , TestCol
--更新表TestTable中列TestCol的描述属性
EXEC sp_UpdateExtendedProperty 'MS_Description' , '描述信息' , 'user' , dbo , 'table' , 'TestTable' , 'column' , TestCol
--删除表TestTable中列TestCol的描述属性
EXEC sp_DropExtendedProperty 'MS_Description' , 'user' , dbo , 'table' , 'TestTable' , 'column' , TestCol