我在 SQL Server 数据库中有 1000 个表。
如果我想添加一个关于每个表在我的应用程序中的作用的简短描述,我是否应该创建另一个表来维护该信息?或者有更好的方法吗?
例如;如果有一个表 [PurchaseOrdersConcrete]
并且我想指出 - 此表存储来自财富 500 强公司的所有 PO。
我应该为此目的创建另一个元数据表,还是在 SQL Server 的某处已经有一个 - Notes
- 列......(比如在 sys.tables
)?
最佳答案
您可以通过扩展属性来做到这一点。 usage of them can be found here 的 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 将它们用于它自己的一些元数据。查看它们的运行方式的一种方法是查看 SSMS 中的一个 View
。右键单击它并选择属性。然后单击“扩展属性”。您可能会看到一个条目,上面写着一些关于 MS_DiagramPane???
的内容。这是 MS 存储您的 View 布局的位置,以便每次您在设计模式下打开 View 时,它看起来都与您上次离开时的样子相同。
这些已作为 far back as SQL2000 提供但最近得到了广泛使用。
关于sql-server - SQL Server - 表元数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12980032/