SQL Server - 表元数据

Gil*_*lla 6 database sql-server metadata database-administration database-table

我在SQL Server数据库中有1000个表.

如果我想添加一个关于每个表在我的应用程序中执行的操作的简要说明,我是否应该创建另一个表来维护该信息?或者有更好的方法吗?

例如 ; 如果有一张桌子[PurchaseOrdersConcrete],我想注意 - 这个表存储了Fortune500公司的所有PO.

我是否应该为此目的创建另一个元数据表,或者NotesSQL Server中是否存在 - - somwhere ...(比如说sys.tables)?

RTh*_*mas 9

您可以通过扩展属性来实现.可以在此处找到 msdn的使用概述.我已经将它们用于上面描述的确切目的.

管理它们的最简单方法是直接在SSMS中,右键单击对象并选择属性.但您也可以通过tsql在应用程序中使用它们.

要添加新的扩展属性,请使用sp_addextendedproperty.

要检索现有的扩展属性,典型的方法是查询:: fn_listextendedproperty,如下面的示例所示.

SELECT   objType, objName, Type, Value
FROM   ::fn_listextendedproperty (null, 'user',
 'dbo', 'table','<your table>', null, null)
Run Code Online (Sandbox Code Playgroud)

通过使用sp_updateextendedpropertysp_dropextendedproperty可以对它们进行更新和删除操作


此外,SSMS将它们用于某些自己的元数据.查看它们的实际操作方法是查看您views的SSMS中的一个.右键单击它并选择属性.然后单击"扩展属性".您可能会看到一个条目,说明了一些内容MS_DiagramPane???.这是MS存储视图布局的地方,这样每次在设计模式下打开视图时,它看起来都与上次离开时​​的方式相同.

这些已经可以作为早在SQL2000但最近得到了广泛的使用.