我在SQL Server数据库中有1000个表。
如果我想添加每个表在我的应用程序中所做的工作的简要说明,是否应该创建另一个表来维护该信息?还是有更好的方法?
例如;如果有一个表[PurchaseOrdersConcrete]
,我想注意 - 此表存储了Fortune500公司的所有POS。
我应该为此目的创建另一个meta -data表,还是已经有一个- Notes
-列已经在sql server中...(例如sys.tables
中)?
您可以通过扩展属性进行操作。可以在此处找到MSDN的使用情况。我将它们用于您上面描述的确切目的。
最简单的 通过右键单击对象并选择属性,直接在SSM中进行管理。但是您也可以通过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
,更新并删除了它们的操作。此外,SSM将其用于某些它自己的元数据。看到它们的一种方法是查看您在SSM中的views
之一。右键单击它,然后选择属性。然后单击"扩展属性"。您可能会看到一个说明MS_DiagramPane???
的条目。这是MS存储视图的布局的地方,因此每次您以设计模式打开视图时,看起来与上次离开的方式相同。
这些已经可以回到SQL2000,但最近获得了广泛使用。
正如RTHOMAS所建议的,使用扩展属性,甚至更好地使用Redgates SQLDOC工具,这将使您易于填充和维护这些字段:
http://www.red-gate.com/products/sql-development/sql-doc/
完成后,它甚至为您生成印刷和/或Web文档。很棒的工具。