6

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

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

例如 ; 如果有一张表[PurchaseOrdersConcrete],我想指出 -该表存储来自财富 500 强公司的所有采购订单。

我应该为此目的创建另一个元数据表,还是Notes在 SQL Server 中的某个地方已经有一个 - - 列 ...(比如 in sys.tables)?

4

2 回答 2

9

您可以通过扩展属性做到这一点。可以在此处找到有关它们用法的msdn 概述。我已将它们用于您上面描述的确切目的。

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

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

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

SELECT   objType, objName, Type, Value
FROM   ::fn_listextendedproperty (null, 'user',
 'dbo', 'table','<your table>', null, null)

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


此外,SSMS 将它们用于它自己的一些元数据。一种查看它们的实际效果的方法是查看您views在 SSMS 中的一个。右键单击它并选择属性。然后单击“扩展属性”。您可能会看到一个关于MS_DiagramPane???. 这是 MS 存储视图布局的地方,因此每次在设计模式下打开视图时,它看起来与上次离开时​​的方式相同。

这些早在 SQL2000就已经可用,但最近才得到广泛使用。

于 2012-10-19T18:13:51.967 回答
1

正如 RTHomas 建议的那样,使用扩展属性,甚至更好地使用 RedGates SQLDoc 工具,这将使您可以轻松地填充和维护这些字段:

http://www.red-gate.com/products/sql-development/sql-doc/

完成后,它甚至会为您生成打印和/或 Web 文档。很棒的工具。

于 2012-10-19T18:42:23.910 回答