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

Откуда: Oz
Сообщений: 977
Господа, кто скажет утвердительно что эти высказывания верны?

In the fn_listextendedproperty function, the first parameter is the property name you are looking for. If you specify default, you are asking the system to list every property. You can use default to tell the system that you want every property or object for every parameter. The following statement gives you all the database level properties of the current database:

автор
select * from ::fn_listextendedproperty
(default, default, default,
default, default, default, default)


The next example gives you all the table level properties for all tables in the current database:

автор
select * from ::fn_listextendedproperty
(default, ‘user’, ‘dbo’,
‘table’, default, default, default)


У меня не работает.

Первоисточник:
Copyright ©2001 SYBEX, Inc., Alameda, CA www.sybex.com
19 янв 04, 12:59    [496805]     Ответить | Цитировать Сообщить модератору
 Re: fn_listextendedproperty  [new]
Glory
Member

Откуда:
Сообщений: 104760
Оба верны.
19 янв 04, 13:04    [496819]     Ответить | Цитировать Сообщить модератору
 Re: fn_listextendedproperty  [new]
Gena G.
Member

Откуда: Oz
Сообщений: 977
Я не про синтаксис, а про результат - у меня результат не выдает то что написано в книге...
19 янв 04, 13:08    [496829]     Ответить | Цитировать Сообщить модератору
 Re: fn_listextendedproperty  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
А вы эти свойства заполняли, чтоб их получить?
19 янв 04, 13:09    [496830]     Ответить | Цитировать Сообщить модератору
 Re: fn_listextendedproperty  [new]
Glory
Member

Откуда:
Сообщений: 104760
CREATE   table T1 (id int , name char (20))

CREATE table T2 (id int , name char (20))

EXEC sp_addextendedproperty 'myname', 'mytable1', 'user', dbo, 'table', 'T1'
EXEC sp_addextendedproperty 'myname', 'mytable2', 'user', dbo, 'table', 'T2'

SELECT *
FROM ::fn_listextendedproperty (NULL, 'user', 'dbo', 'table', default, default, default)
19 янв 04, 13:10    [496831]     Ответить | Цитировать Сообщить модератору
 Re: fn_listextendedproperty  [new]
Gena G.
Member

Откуда: Oz
Сообщений: 977
автор
А вы эти свойства заполняли, чтоб их получить?


Естественно :) И при явном указании таблицы все работает. А вот когда по всей БД - голяк...
19 янв 04, 13:12    [496837]     Ответить | Цитировать Сообщить модератору
 Re: fn_listextendedproperty  [new]
pkarklin
Member

Откуда: Москва (Муром)
Сообщений: 74925
Ну не знаю. Второй запрос возвращает набор, если хотя бы для одной таблицы указать Description.
19 янв 04, 13:13    [496840]     Ответить | Цитировать Сообщить модератору
 Re: fn_listextendedproperty  [new]
Glory
Member

Откуда:
Сообщений: 104760
А вот когда по всей БД - голяк

Это синтаксис дял объекта база данных, а не для всех объектов базы данных
"all the database level properties of the current database"
19 янв 04, 13:13    [496842]     Ответить | Цитировать Сообщить модератору
 Re: fn_listextendedproperty  [new]
Gena G.
Member

Откуда: Oz
Сообщений: 977
Угу... Я неправильно понял фразу all the database level properties - думал что для всех объектов базы...
19 янв 04, 14:30    [497104]     Ответить | Цитировать Сообщить модератору
 Re: fn_listextendedproperty  [new]
ChA
Member

Откуда: Москва
Сообщений: 11135
А не проще вместо ::fn_listextendedproperty обращаться сразу к таблице sysproperties ? Или сделать свои view на нее ?
21 фев 04, 07:15    [546356]     Ответить | Цитировать Сообщить модератору
 Re: fn_listextendedproperty  [new]
Vishnu
Member

Откуда:
Сообщений: 8
Что-то я вот тоже не совсем понимаю логику работы...

Во-первых, нет такого понятия, как database level.

Во-вторых, вот что пишет мануал:

BOL
Examples
This example lists all extended properties for the database.

SELECT *
FROM ::fn_listextendedproperty(NULL, NULL, NULL, NULL, NULL, NULL, NULL)


Выражение all extended properties for the database я привык переводить как все расширенные свойства (комментарии, описания) к БД.

В третьих, у меня в QA не работает нижеследующая конструкция.
SELECT   *
FROM   ::fn_listextendedproperty (NULL, 'user', 'dbo', 'table', default, default, default)
Более того, она не работает до тех пор, пока не будет жестко задан тип второго уровня. Не говоря уже об имени таблицы.

Какие тонкости я пропустил?
Хотелось бы получать список описаний, сокращающийся по мере детализации уровней.
25 янв 05, 14:54    [1271981]     Ответить | Цитировать Сообщить модератору
 Re: fn_listextendedproperty  [new]
Glory
Member

Откуда:
Сообщений: 104760
Во-первых, нет такого понятия, как database level.
Где нет такого понятия ?

Во-вторых, вот что пишет мануал:
Не надо путать расширенные свойства БД как объекта и расширенные свойства БД как контейнера, содержащего другие объекты.
Пример выводит расширенные свойства именно объекта БД а не расширенные свойства всех полобъектов БД

В третьих, у меня в QA не работает нижеследующая конструкция.
У меня работает и выдает пустой рекордсет
25 янв 05, 15:00    [1272011]     Ответить | Цитировать Сообщить модератору
 Re: fn_listextendedproperty  [new]
Vishnu
Member

Откуда:
Сообщений: 8
Где нет такого понятия ?
В расшифровке термина level для обсуждаемой функции.

Пример выводит расширенные свойства именно объекта БД а не расширенные свойства всех полобъектов БД

Из чего это следует? Обратный вопрос - как задать описание к объекту DataBase если нет такого уровня?

У меня работает и выдает пустой рекордсет

Ок. Но гудение трансформатора никогда не было свидетельством его должной работы.

В данном случае по тексту BOL и по структуре возвращаемой таблицы следует, что должен возвращаться список всех описаний от текущего уровня и ниже. Иначе какой же смысл в возвращаемом поле objtype, если я должен его специфицировать в запросе?

Если бы меня интересовал список свойств к конкретному объекту и только к нему, то мне бы было достаточно в качестве обязательного параметра передать только его имя. Или - полностью специфицированное имя в виде [database].[dbo].[objectname].[subobjectname]. Но данная функция не допускает подобной спецификации имен...
25 янв 05, 15:18    [1272085]     Ответить | Цитировать Сообщить модератору
 Re: fn_listextendedproperty  [new]
Glory
Member

Откуда:
Сообщений: 104760
Пример выводит расширенные свойства именно объекта БД а не расширенные свойства всех полобъектов БД

Из чего это следует? Обратный вопрос - как задать описание к объекту DataBase если нет такого уровня?


Это следует из перевода фразы
Examples
This example lists all extended properties set on the database object.
SELECT *
FROM ::fn_listextendedproperty(NULL, NULL, NULL, NULL, NULL, NULL, NULL)



Ок. Но гудение трансформатора никогда не было свидетельством его должной работы.
Если ваш трансформатор выдает ошибку тоо привидите ее текст. В противном случае это разговор ни о чем.
Для базы где имееются расширенные свойства на уровне таблиц запрос
SELECT *
FROM ::fn_listextendedproperty (NULL, 'user', 'dbo', 'table', default, default, default)
выдает все эти свойства

Если бы меня интересовал список свойств к конкретному объекту и только к нему, то мне бы было достаточно в качестве обязательного параметра передать только его имя. Или - полностью специфицированное имя в виде [database].[dbo].[objectname].[subobjectname]. Но данная функция не допускает подобной спецификации имен...
Никто не мешает вам организовать свой функционал на основе системной таблицы sysproperties
25 янв 05, 15:33    [1272139]     Ответить | Цитировать Сообщить модератору
 Re: fn_listextendedproperty  [new]
Vishnu
Member

Откуда:
Сообщений: 8
Жаль, конечно... Не хотелось плодить свою процедурину под это...
25 янв 05, 18:39    [1272958]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить