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

У меня все описания полей находятся в Field Description. Ни как не получается вытянуть их в Модель PD :((((
...
Рейтинг: 0 / 0
04.09.2003, 19:13
    #32256366
Lepsik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вытянуть в Power Designer field description из SQL2000
Например, чтобы сохранить описание столбца 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
04.09.2003, 19:31
    #32256385
akim2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вытянуть в Power Designer field description из SQL2000
Это как я понял добавить свойство к полю!?

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

Как его вытянуть???
...
Рейтинг: 0 / 0
05.09.2003, 09:09
    #32256565
akim2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вытянуть в Power Designer field description из SQL2000
Неужели ни кто не сталкивался с этой задачей???
...
Рейтинг: 0 / 0
05.09.2003, 11:06
    #32256691
ASCRUS
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вытянуть в Power Designer field description из SQL2000
Необходимо подправить 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
05.09.2003, 13:39
    #32256965
akim2
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вытянуть в Power Designer field description из SQL2000
Попробовал, но увы, ничего не получилось. Добавил код, но коментарии по прежнему не вытаскиваются. Также попробовал добавить код

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


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