这里从头开始以贴图附代码的方式来完整的展示用PD生产SQL并生产数据库表结构的整个过程。
第一步: 新建自定义DBMS:
这里只是修改部分参数,选择拷贝自Micorsoft SQL SERVER 2000。然后如图保存:
接着会弹出如下交互窗口:
第二步:修改关键特征树,在 Script\Objects\Table\TableComment和Script\Objects\Column\ColumnComment位置的直修改如下:
表级注释
确定。
第三步:新的 Physical Data Model(PDM),如下就不详细接受只贴图了:
注意:这里建表的时候最好选定所有者,没有自己新建一个。
第四步:配置参数,生成SQL 语句。工具栏(Tools)—>生成数据库(Generate Database)
勾上以上复选框,否则当你备注为空的时候注释出不来;反之,如果你备注不为空那么名称(Name)才能作为注释出现!!
去掉上面User前面的勾,否则到时候生成SQL语句执行的时候可能出现如下错误:
第五步:执行PD生成的SQL语句,生成表结构。
在查询分析器中执行生成的SQL语句后表结构如图:
第一步: 新建自定义DBMS:
这里只是修改部分参数,选择拷贝自Micorsoft SQL SERVER 2000。然后如图保存:
接着会弹出如下交互窗口:
第二步:修改关键特征树,在 Script\Objects\Table\TableComment和Script\Objects\Column\ColumnComment位置的直修改如下:
表级注释
EXECUTE
sp_addextendedproperty N
'
MS_Description
'
, N
'
%COMMENT%
'
, N
'
user
'
, N
'
%OWNER%
'
, N
'
table
'
, N
'
%TABLE%
'
,
NULL
,
NULL
列级注释
EXECUTE
sp_addextendedproperty N
'
MS_Description
'
, N
'
%Name%
'
, N
'
user
'
, N
'
%OWNER%
'
, N
'
table
'
, N
'
%TABLE%
'
, N
'
column
'
, N
'
%COLUMN%
'
如图:确定。
第三步:新的 Physical Data Model(PDM),如下就不详细接受只贴图了:
注意:这里建表的时候最好选定所有者,没有自己新建一个。
第四步:配置参数,生成SQL 语句。工具栏(Tools)—>生成数据库(Generate Database)
勾上以上复选框,否则当你备注为空的时候注释出不来;反之,如果你备注不为空那么名称(Name)才能作为注释出现!!
去掉上面User前面的勾,否则到时候生成SQL语句执行的时候可能出现如下错误:
服务器: 消息
15181
,级别
16
,状态
1
,过程 sp_revokedbaccess,行
43
无法除去数据库所有者。
服务器: 消息 15007 ,级别 16 ,状态 1 ,过程 sp_grantdbaccess,行 98
登录 'dbo' 不存在。
最后点确定生成,PD最终生成的SQL代码如下:
无法除去数据库所有者。
服务器: 消息 15007 ,级别 16 ,状态 1 ,过程 sp_grantdbaccess,行 98
登录 'dbo' 不存在。
/*
==============================================================
*/
/* DBMS name: SQL SERVER 2000 [EXT] */
/* Created on: 2008-2-28 2:49:38 */
/* ============================================================== */
if exists ( select 1
from sysobjects
where id = object_id ( ' dbo.Employee ' )
and type = ' U ' )
drop table dbo.Employee
go
/* ============================================================== */
/* Table: Employee */
/* ============================================================== */
create table dbo.Employee (
ID int not null ,
Username varchar ( 20 ) null ,
Password varchar ( 20 ) null ,
constraint PK_EMPLOYEE primary key (ID)
)
go
EXECUTE sp_addextendedproperty N ' MS_Description ' , N ' Employee ' , N ' user ' , N ' dbo ' , N ' table ' , N ' Employee ' , NULL , NULL
go
EXECUTE sp_addextendedproperty
N ' MS_Description ' , N ' 主键ID ' , N ' user ' , N ' dbo ' , N ' table ' , N ' Employee ' , N ' column ' , N ' ID '
go
EXECUTE sp_addextendedproperty
N ' MS_Description ' , N ' 用户名 ' , N ' user ' , N ' dbo ' , N ' table ' , N ' Employee ' , N ' column ' , N ' Username '
go
EXECUTE sp_addextendedproperty
N ' MS_Description ' , N ' 密码 ' , N ' user ' , N ' dbo ' , N ' table ' , N ' Employee ' , N ' column ' , N ' Password '
go
如果你生成的SQL语句没有之后面这几条执行sp_addextendedproperty的语句,那么本次你将不能生成带注释的SQL语句,请仔细检查步骤及细节。
/* DBMS name: SQL SERVER 2000 [EXT] */
/* Created on: 2008-2-28 2:49:38 */
/* ============================================================== */
if exists ( select 1
from sysobjects
where id = object_id ( ' dbo.Employee ' )
and type = ' U ' )
drop table dbo.Employee
go
/* ============================================================== */
/* Table: Employee */
/* ============================================================== */
create table dbo.Employee (
ID int not null ,
Username varchar ( 20 ) null ,
Password varchar ( 20 ) null ,
constraint PK_EMPLOYEE primary key (ID)
)
go
EXECUTE sp_addextendedproperty N ' MS_Description ' , N ' Employee ' , N ' user ' , N ' dbo ' , N ' table ' , N ' Employee ' , NULL , NULL
go
EXECUTE sp_addextendedproperty
N ' MS_Description ' , N ' 主键ID ' , N ' user ' , N ' dbo ' , N ' table ' , N ' Employee ' , N ' column ' , N ' ID '
go
EXECUTE sp_addextendedproperty
N ' MS_Description ' , N ' 用户名 ' , N ' user ' , N ' dbo ' , N ' table ' , N ' Employee ' , N ' column ' , N ' Username '
go
EXECUTE sp_addextendedproperty
N ' MS_Description ' , N ' 密码 ' , N ' user ' , N ' dbo ' , N ' table ' , N ' Employee ' , N ' column ' , N ' Password '
go
第五步:执行PD生成的SQL语句,生成表结构。
在查询分析器中执行生成的SQL语句后表结构如图:
本文转自博客园农民伯伯的博客,原文链接:PowerDesigner 12 根据名称生成注释(完整示例),如需转载请自行联系原博主。