powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вытянуть в Power Designer field description из SQL2000
7 сообщений из 7, страница 1 из 1
Вытянуть в Power Designer field description из SQL2000
    #32256338
akim2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите пожалуйста вытянуть в PD Description из базы MSSQL2000.

У меня все описания полей находятся в Field Description. Ни как не получается вытянуть их в Модель PD :((((
...
Рейтинг: 0 / 0
Вытянуть в Power Designer field description из SQL2000
    #32256366
Lepsik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например, чтобы сохранить описание столбца au_id в таблице authors в базе данных pubs, нужно щелкнуть правой кнопкой мыши на имени столбца в окне Object Browser (новый интерфейс Query Analyzer), затем выбрать Extended Properties. Теперь следует добавить новое свойство WhatAmI и внести значение "I am the author id column!!!". То же самое можно сделать, используя процедуру sp_addextendedproperty:

sp_addextendedproperty 'WhatAmI2','This is a new property value','user', dbo, 'table', authors, 'column', au_id

Затем можно применить стандартный оператор SELECT с новой функцией fn_listextendedproperty, чтобы извлечь информацию:

SELECT * FROM ::fn_listextendedproperty(NULL, 'user', 'dbo','table','authors', 'column', default)

Objtype objname name value
COLUMN au_id WhatAmI I am the author id column!!!
COLUMN au_id WhatAmI2 This is a new property value
SELECT * FROM
...
Рейтинг: 0 / 0
Вытянуть в Power Designer field description из SQL2000
    #32256385
akim2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это как я понял добавить свойство к полю!?

А у меня уже есть Description, кот был заполнен в Database Diagram in Enterprise Manager. Там возле каждого пля есть Description.

Как его вытянуть???
...
Рейтинг: 0 / 0
Вытянуть в Power Designer field description из SQL2000
    #32256565
akim2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Неужели ни кто не сталкивался с этой задачей???
...
Рейтинг: 0 / 0
Вытянуть в Power Designer field description из SQL2000
    #32256691
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Необходимо подправить DBMS для MSSQL 2000. По идее в разделе Script\Objects\Column надо подправить ключ SqlAttrQuery. Написать там надо что то типа того:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
{OWNER, TABLE, S, COLUMN, COMPUTE, NOTNULL, IDENTITY, DOMAIN, ExtIdentityIncrement, ExtIdentitySeed,  /* добавить */  @OBJTLABL}

select
   u.name,
   o.name,
   c.colid,
   c.name,
   z.text,
   case (c.status &  8 ) when  8  then 'NULL' else 'NOTNULL' end,
   case (c.status &  128 ) when  128  then 'identity' else '' end,
   case when (s.usertype <  100 ) then '' else s.name end,
   ident_incr(u.name + '.' + o.name),
   ident_seed(u.name + '.' + o.name),

    /* добавить */ 
   d.Value

from
   dbo.sysusers u
      join dbo.sysobjects o on (o.uid = u.uid)
      join dbo.syscolumns c on (c.id = o.id)
      join dbo.systypes s on ((c.usertype =  0  and s.xtype = c.xtype) or (c.usertype >  0  and s.usertype = c.usertype))
      left outer join dbo.systypes x on (x.type = s.type and s.usertype >= 100  and x.usertype = (select min(w.usertype) from dbo.systypes w where w.type=x.type))
      left outer join dbo.syscomments z on (z.id = o.id and z.number = c.colid)

       /* добавить */ 
      join ::fn_listextendedproperty('MS_Description',  'user', 'dbo', 'table', %.q:TABLE%, 'column', default) d on d.objname = c.name

where
   c.usertype >=  0 
   and c.name is not NULL
[  and u.name = %.q:SCHEMA%]
[  and o.name=%.q:TABLE%]
order by  1 ,  2 ,  3 


То есть в этом скрипте мы добавляем на получение аттрибутов колонок еще аттрибут комментария и в запросе получаем его. Следует иметь ввиду, что скрипт не готов к использованию, это я примерно накидал - я уже сто лет не работал в MSSQL 2000, у меня он не стоит и проверить я правильность скрипта не могу, плюс я PD изучаю всего пару дней и разобраться со всеми его тонкостями конечно же не успел. Однако думаю, что проблема должна таким путем решиться - во всяком случае для DBMS ASA 8 считывание комментариев я именно так и подправил и все работает.
...
Рейтинг: 0 / 0
Вытянуть в Power Designer field description из SQL2000
    #32256965
akim2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробовал, но увы, ничего не получилось. Добавил код, но коментарии по прежнему не вытаскиваются. Также попробовал добавить код

select
sysproperties.value
from syscolumns
left join sysproperties on sysproperties.id = syscolumns.id
where
syscolumns.id = object_id('[%QUALIFIER%]%TABLE%')
and syscolumns.name = '%COLUMN%'

в ColumnComments. И тоже ничего. Сам скрипт в QA работает и показывает данные кот надо. А в PD не получается.

Не оставте одного плиз сражатся с монстрами.
...
Рейтинг: 0 / 0
Вытянуть в Power Designer field description из SQL2000
    #32257001
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут конечно возможен вариант, что столбы сразу для всех таблиц вытаскиваются, но я в этом не уверен. Попробуйте порыться в спецификациях PD по поводу его переменных, я просто не уверен, что @OBJTLABL для MSSQL означает комментарий, так как я его в ASA8 использовал и подозреваю, что у каждого DBMS могут быть свои переменные. Рыть наверное надо в эту сторону. Чтобы проверить просто в запросе вместо получения комментария поставьте какую нибудь константу, типа 'Комментарий', убрав из запроса получение комментариев и посмотрите, будет ли эта константа все колонкам в кач-ве комментария ставиться если указано @OBJTLABL. Тогда сразу и станет ясно, где собака порылась.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Вытянуть в Power Designer field description из SQL2000
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]