在经过了N久的痛苦折磨后,终于找到了这个方法。现将方法公布给不知道的朋友,老鸟就不要来扔鸡蛋了!
事先声明:本文之基础方法参考了
enhydraboy的专栏 中的
如何让PowerDesigner支持自动生成含SQL Server 2000的表和列注释的角本
说实话,资料是同事发给我的,地址是一个转载上面老兄这篇文章的一个链接。和这老兄一样,只是上来一段代码,说了原理。说有图,却没有见到图。用了文中说的方法后,PD没有任何反应,试了好几次也不使。后来想可能是我机器上是SQL SERVER2005的关系。没找到2000的环境。想不明白SQL 2005中怎么可以,于是新建了个带注释的表,生成SQL文件试了一下,发现了:
EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'中共中央办公厅' ,@level0type=N'SCHEMA', @level0name=N'dbo', @level1type=N'TABLE', @level1name=N'ZWB', @level2type=N'COLUMN', @level2name=N'aaa'
仔细一检查和上面老兄说的不太一样。按照那个格式了一下,居然好使了!
下面仔细说说:(不关键的就引用上面老兄的话了。其中的部分内容根据自己的情况改,如果这个你都不会,就没看此文,赶快找块豆腐撞死,没准还能碰上阎老五开Part)
1 从菜单 TOOLS->RESOUCES->DBMS ,进入自定义数据模型,参见图 1 。
图 1
2 PowerDesigner 弹出一个对话框,列表 框中列出了当前 PowerDesigner 支持的
数据库模型(图 2 )。
图 2
我们选择创建一个新的。输入名字 SQL SERVER 2005(EXTENDED)可自定义 ,选择从现有的 SQL SERVER 2000 复制,这样 SQL SERVER 2000(EXTENDED) 就包含了原来 SQL SERVER2000 模型拥有的所有特征(图 3 )。
图 3
红色框起来的才是关键。原来大哥说的过程在这里是不好使的。原因没有仔细考证过 。
图4
根据上面的图来设定注释
如果想把字段的NAME属性用作注释,可在SCRIPT脚本对应的地方改成“%NAME%”
再引用一个网友的经验:
1; 想要让我们写的注释代码起作用,一定要在表属性的general标签下 comment 项里添家内容. 否则表的注释不起作用.同样,在表属性的columns标签里,同样要在 comment 项里添家内容,否则列的注释同样不起作用.
2;表属性的columns 标签下,默认是没有 comment 项的,需要点columns 标签下右上角 带漏斗形状和一直笔的图标,在弹出的项中选择 comment 项,这时,columns标签下就有comment项了,添入内容,我们写的列的注释代码就起作用了.columns标签下默认的项有:name,code,type,p,F,M
3;变量COMMENT,TNAME,COLNNAME区分大小写,全部大写是正确的
4;如想用名字代替注释内容,在注释代码中表用N'%TNAME%',列用N'%COLNNAME%',代替N'%COMMENT%',很多朋友直接从网上拷贝的N'%NAME%'是错误的,即使不想显示COMMENT中的内容,在表,列的 COMMENT 项中也要输入数据,否则注释代码不执行.
一切OVER