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