SQL Server - метаданные таблицы

у меня есть 1000 таблиц в базе данных SQL Server.

Если бы я хотел добавить краткое описание того, что каждая таблица делает в моем приложении, должен ли я создавать другую таблицу для поддержания этой информации? Или есть лучший способ?

например, если есть таблица [PurchaseOrdersConcrete] и я хочу отметить, что - эта таблица хранит все POs от Fortune500 компаний.

должен ли я создать другую таблицу метаданных для этой цели или там - Notes - столбец somwhere в SQL Server уже ... (скажем, в sys.tables)?

2 ответов


вы делаете это с помощью расширенных свойств. Обзор 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/

Он даже выпускает печатную и/или веб-документацию для вас, когда вы сделали. Великолепный инструмент.