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

Откуда:
Сообщений: 1010
Подскажите откуда можно вытащить список полей с их описанием?
Описание добавляется таким скриптом:
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Тип документов ГК' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Fct_0008', @level2type=N'COLUMN',@level2name=N'IdNci_0063'

Как его можно получить в запросе рядом с именем поля таблицы?
Все эти запросы:
SELECT * FROM INFORMATION_SCHEMA. COLUMNS WHERE TABLE_NAME = 'Fct_0008'
SELECT * FROM [sys].[columns] WHERE OBJECT_ID = OBJECT_ID('Fct_0008')
SELECT * FROM [sys].[all_columns] WHERE OBJECT_ID = OBJECT_ID('Fct_0008')

Не дают желаемого результата, в них нет описания. Подскажите как получить описание?
12 ноя 15, 13:40    [18406076]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2014 получить список полей таблицы с их описанием?  [new]
Pvase
Member

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

Напал на след: https://technet.microsoft.com/en-us/library/ms186989(v=sql.105).aspx
т.е. надо использовать:
SELECT * FROM fn_listextendedproperty (NULL, 'schema', 'dbo', 'table', 'Fct_0008', 'column', default)
12 ноя 15, 13:53    [18406178]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2014 получить список полей таблицы с их описанием?  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
Pvase, Можно табличку использовать - sys.extended_properties.

Вот такой скриптик делал:

select t.name, c.name, EP.value
   from sys.extended_properties EP
        inner join sys.tables t
                on t.object_id = EP.major_id
               and EP.name = 'MS_Description'
        left  join sys.columns c
                on t.object_id = c.object_id
               and EP.minor_id =c.column_id


Там, где c.name - null - комментарии к таблицам, где не null - к колонкам.
12 ноя 15, 14:05    [18406281]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2014 получить список полей таблицы с их описанием?  [new]
Pvase
Member

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

Спасибо, то что надо.
12 ноя 15, 14:10    [18406318]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2014 получить список полей таблицы с их описанием?  [new]
iap
Member

Откуда: Москва
Сообщений: 47142
Мне кажется, использование функции - более правильное решение.
Ибо её интерфейс не будет меняться.
12 ноя 15, 14:40    [18406511]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2014 получить список полей таблицы с их описанием?  [new]
o-o
Guest
с ф-цией так с ф-цией
select object_name(c.object_id) as table_name, c.name as col_name, l.value
from sys.columns c 
   join sys.objects o 
      on c.object_id = o.object_id
   cross apply 
     fn_listextendedproperty (NULL, 'schema', schema_name(o.schema_id), 'table', object_name(c.object_id), 'column', c.name) l
12 ноя 15, 14:57    [18406622]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2014 получить список полей таблицы с их описанием?  [new]
Minamoto
Member

Откуда: Москва
Сообщений: 1162
o-o
с ф-цией так с ф-цией
select object_name(c.object_id) as table_name, c.name as col_name, l.value
from sys.columns c 
   join sys.objects o 
      on c.object_id = o.object_id
   cross apply 
     fn_listextendedproperty (NULL, 'schema', schema_name(o.schema_id), 'table', object_name(c.object_id), 'column', c.name) l

А где свойства для таблиц? ;)
12 ноя 15, 15:14    [18406709]     Ответить | Цитировать Сообщить модератору
 Re: MS SQL 2014 получить список полей таблицы с их описанием?  [new]
o-o
Guest
Minamoto
А где свойства для таблиц? ;)

Pvase
MS SQL 2014 получить список полей таблицы с их описанием

:P
12 ноя 15, 15:20    [18406749]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить