關(guān)于PowerDesigner的基本操作就不說了,大家可以去查下資料。用pd設(shè)計數(shù)據(jù)庫模型生成數(shù)據(jù)庫及字典,是大家都經(jīng)常做的事情,但是在實際中,對與pd9.5有一點不方便的地方是關(guān)于列的注釋不能在生成數(shù)據(jù)庫的過程中生成,很麻煩。
這里就主要解決這個問題,如果圖片貼比較麻煩,大家可以按步驟自己做下就可以了。
一、基本操作
1.1。工具->資源->數(shù)據(jù)庫管理系統(tǒng)(TOOLS->RESOUCES->DBMS)
1.2。新建: 名稱:隨便取 復(fù)制來源:Microsoft SQL SERVER 2000,然后提示保存
1.3。Script->Objects->Column->ColumnComment
在值中輸入以下的內(nèi)容,保存即可。
EXECUTE sp_addextendedproperty N'MS_Description', N'%COMMENT%', N'user', N'%OWNER%', N'table', N'%TABLE%', N'column', N'%COLUMN%'
1.4。在生成數(shù)據(jù)庫的時候選擇剛才新建立的模板,注意這時的注釋的選項也是灰色不可選的,真不知道sybase干嗎要這么做,聽說新版本12已經(jīng)休正了,可以在生成數(shù)據(jù)庫的時候選擇。我認為9.5對我就已經(jīng)夠了,有喜歡嘗新的朋友可以自己去嘗試一下。
二、擴充說明:
2.1。對表增加注釋
在Script->Objects->Table->TableComment
在值中輸入以下保存
EXECUTE sp_addextendedproperty N'MS_Description', N'%COMMENT%', N'user', N'%OWNER%', N'table', N'%TABLE%', NULL, NULL
2.2。反向工程中對列級也生成注釋
同樣操作上面的1.1和1.2的步驟
在Script-Object-Column 在Column下找到 SqlListQuery,在值中輸入保存
{OWNER, TABLE, S, COLUMN, DTTPCODE, LENGTH, SIZE, PREC, COMPUTE, NOTNULL, IDENTITY, DOMAIN, DEFAULT, COMMENT, ExtIdentityIncrement, ExtIdentitySeed}
select
u.name,
o.name,
c.colid,
c.name,
case when (s.usertype < 100) then s.name else x.name end,
c.prec,
c.length,
c.scale,
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,
v.text,
CONVERT(varchar, ISNULL(p.[value], '')) AS text,
case (c.status & 128) when 128 then ident_incr(u.name + '.' + o.name) else null end,
case (c.status & 128) when 128 then ident_seed(u.name + '.' + o.name) else null end
from
dbo.sysusers u
join dbo.sysobjects o on (o.uid = u.uid and o.type in ('U', 'S', 'V'))
join dbo.syscolumns c on (c.id = o.id)
left outer join sysproperties p on c.id = p.id and c.colid = p.smallid
left outer join dbo.systypes s on (c.usertype = s.usertype and s.xtype = c.xtype and c.usertype >= 0)
left outer join dbo.systypes x on (s.usertype > 100 and s.xtype = x.xtype and x.usertype not in (0, 18, 80) and x.usertype < 100)
left outer join dbo.syscomments z on (z.id = o.id and z.number = c.colid)
left outer join dbo.sysobjects d on (d.id = c.cdefault and d.category <> 0)
left outer join dbo.syscomments v on (v.id = d.id)
where 1 = 1
[ and u.name = %.q:OWNER%]
[ and o.name=%.q:TABLE%]
order by 1, 2, 3