我在 SQL Server 数据库中有 1000 个表。
如果我想简要说明每个表在我的应用程序中的作用,我是否应该创建另一个表来维护该信息?或者有更好的方法吗?
例如 ; 如果有一张表[PurchaseOrdersConcrete]
,我想指出 -该表存储来自财富 500 强公司的所有采购订单。
我应该为此目的创建另一个元数据表,还是Notes
在 SQL Server 中的某个地方已经有一个 - - 列 ...(比如 in sys.tables
)?
我在 SQL Server 数据库中有 1000 个表。
如果我想简要说明每个表在我的应用程序中的作用,我是否应该创建另一个表来维护该信息?或者有更好的方法吗?
例如 ; 如果有一张表[PurchaseOrdersConcrete]
,我想指出 -该表存储来自财富 500 强公司的所有采购订单。
我应该为此目的创建另一个元数据表,还是Notes
在 SQL Server 中的某个地方已经有一个 - - 列 ...(比如 in sys.tables
)?
您可以通过扩展属性做到这一点。可以在此处找到有关它们用法的msdn 概述。我已将它们用于您上面描述的确切目的。
管理它们的最简单方法是直接在 SSMS 中右键单击对象并选择属性。但是您也可以通过 tsql 在您的应用程序中使用它们。
要添加新的扩展属性,请使用sp_addextendedproperty。
要检索现有的扩展属性,一种典型的方法是查询::fn_listextendedproperty,如下面的示例所示。
SELECT objType, objName, Type, Value
FROM ::fn_listextendedproperty (null, 'user',
'dbo', 'table','<your table>', null, null)
通过使用sp_updateextendedproperty和sp_dropextendedproperty可以对它们进行更新和删除操作
此外,SSMS 将它们用于它自己的一些元数据。一种查看它们的实际效果的方法是查看您views
在 SSMS 中的一个。右键单击它并选择属性。然后单击“扩展属性”。您可能会看到一个关于MS_DiagramPane???
. 这是 MS 存储视图布局的地方,因此每次在设计模式下打开视图时,它看起来与上次离开时的方式相同。
这些早在 SQL2000就已经可用,但最近才得到广泛使用。
正如 RTHomas 建议的那样,使用扩展属性,甚至更好地使用 RedGates SQLDoc 工具,这将使您可以轻松地填充和维护这些字段:
http://www.red-gate.com/products/sql-development/sql-doc/
完成后,它甚至会为您生成打印和/或 Web 文档。很棒的工具。