Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 sys.sp_addextendedproperty  [new]
Yagrus2
Member

Откуда: Москва
Сообщений: 872
Здравствуйте.
Подскажите для чего используют процедуру sys.sp_addextendedproperty?
Из описания на http://msdn.microsoft.com/ru-ru/library/ms180047.aspx мало что понял.

Нашел такой пример:
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[GateOrgStructure](
	[Id] [uniqueidentifier] NOT NULL,
	[CreatedOn] [datetime2](7) NULL,
	[ModifiedOn] [datetime2](7) NULL,
	[GateStatusId] [uniqueidentifier] NULL,
	[GateError] [nvarchar](max) NOT NULL,
	[ExtCode] [nvarchar](250) NOT NULL,
	[SubdivisionName] [nvarchar](250) NOT NULL,
	[SubdivisionId] [nvarchar](50) NOT NULL,
	[Address] [nvarchar](250) NOT NULL,
	[City] [nvarchar](50) NOT NULL,
	[TD] [nvarchar](50) NOT NULL,
	[OpenedDate] [date] NULL,
	[SubdivisionType] [nvarchar](50) NOT NULL,
	[DateAdd] [datetime2](7) NULL,
	[SuperiorSubdivisionNumber] [nvarchar](50) NOT NULL,
	[RKO] [int] NOT NULL,
	[PKO] [int] NOT NULL,
) 

GO
EXEC sys.sp_addextendedproperty @name=N'TS.ActionType', @value=N'Column' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'GateOrgStructure', @level2type=N'COLUMN',@level2name=N'Id'
GO
EXEC sys.sp_addextendedproperty @name=N'TS.ColumnName', @value=N'Id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'GateOrgStructure', @level2type=N'COLUMN',@level2name=N'Id'

из него не смог понять, что мы сделали вышеуказанной процедурой.
Есть идеи?

Посмотрел свойства таблицы. В Extended Properties ничего.

К сообщению приложен файл. Размер - 9Kb
21 окт 14, 16:50    [16738424]     Ответить | Цитировать Сообщить модератору
 Re: sys.sp_addextendedproperty  [new]
Glory
Member

Откуда:
Сообщений: 104764
Yagrus2
Посмотрел свойства таблицы. В Extended Properties ничего.

Потому что вы добавили Extended Properties полей, а не таблицы
21 окт 14, 16:51    [16738435]     Ответить | Цитировать Сообщить модератору
Между сообщениями интервал более 1 года.
 Re: sys.sp_addextendedproperty  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8502
Возобновлю тему...

Механизм есть но полезность его близка к нулю?

Кроме как чуть-чуть дельной статьи на хабре от 2013-го года (https://habr.com/ru/sandbox/71210/) ни чего не нашёл.
Если кто-то комментирует колонки и как-то в дальнейшем это использует,- направьте на путь истинный,- где что-то полезное почитать?....

Заранее спасибо...
8 мар 19, 19:45    [21828095]     Ответить | Цитировать Сообщить модератору
 Re: sys.sp_addextendedproperty  [new]
Критик
Member

Откуда: Москва / Калуга
Сообщений: 31131
Блог
SIMPLicity_,

Если не описывать систему, то да, полезность нулевая.
Но если сами поьзователи знают, где посмотреть описание, то это существенно снижает нагрузку на службу поддержки. Также можно создать нечто вроде вики-сайта, который просто берет описания из свойств. Также там можно хранить всякие метаданные:
- номер задачи, в соответствии с которой создана/изменена колонка или таблица
- первичный источник данных
- функиональный блок, к которому относится сущность
- SSIS-пакет, через который грузится сущность
- разнообразные настройки, навроде видимости объекта в интерфейсе
- ссылки на структуры, эмулирующие FK, если справочники находся в других базах на других серверах (для выпадающих списков)

И куча других применений. По сути там может лежать все то, что относится к метаданным таблиц, столбцов и, реже, других объектов.
8 мар 19, 20:40    [21828122]     Ответить | Цитировать Сообщить модератору
 Re: sys.sp_addextendedproperty  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 6271
SIMPLicity_,

Можно создавать метки для технологической бизнес-логики или просто комментарии к базе данных, таблицам, полям и так далее.
Особенно полезно для обработки исключений ограничений, уникальности в виду отсутствия штатного механизма для превращения невнятных сообщений в понятные пользователю.

В качестве меток, например, при развертывании для локального тестирования. предположим, вас не интересует интеграция с внешними системами и вы хотите проверить функционал базы. В таком случае создаете расширенное свойство, которое читают CLR процедуры и внутри себя включают обходной механизм, если метка, к примеру LOCAL. При этом не требуется писать отдельные тесты для интеграционных проверок.

Метки, разумеется бесполезны, если разработка ведется в продуктовой базе и все правки вносятся на лету. Но эта практика пригодна лишь для разработки в малых систем.

В расширенном свойстве удобно хранить версию базы.
9 мар 19, 22:40    [21828563]     Ответить | Цитировать Сообщить модератору
 Re: sys.sp_addextendedproperty  [new]
SIMPLicity_
Member

Откуда: (((@)))
Сообщений: 8502
Спасибо, коллеги!
Хотел использовать для себя, в рабочей базе в том числе, и что бы было видно из SSMS - и для себя и для сотрудников, сопровождающих базу и создающих свои "примочки". Ну, что бы в хелп не надо было лазить по мелочам,... и оставлять комментарии по использованию.
+
"удивительное рядом, но оно запрещено"
9 мар 19, 22:54    [21828569]     Ответить | Цитировать Сообщить модератору
 Re: sys.sp_addextendedproperty  [new]
ЛиП
Member

Откуда:
Сообщений: 343
+ Стороне утилиты (RedGate, dbForge...) умеют вытаскивать extendedproperty и пока звать как вплывающие подсказки или использовать их при создании документации по БД
11 мар 19, 14:58    [21829243]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить