技术开发 频道

PowerDesigner实现导出的SQL语句附带主键

SQL Server 2000下,pd导出sql语句,表是不带主键的。但是这个问题可以解决:


双击你在pd里面所建的表--》选择“perview”,可以查看这张表的建表语句。


举个例子:表1 软件开发网

http://www.mscto.com


if exists (select 1


from sysobjects

where id = object_id('T_SA_FIELD')

and type = 'U')

drop table T_SA_FIELD

go


/*==============================================================*/

 

/* Table: T_SA_FIELD */

/*==============================================================*/

create table T_SA_FIELD (

 

SAFIELDRECID int null,

 

SARECID int null,


FIELDNAME varchar(100) null,

FIELDTYPE DECIMAL null

软件开发网

)

go http://www.mscto.com

其中,SAFIELDRECID是此表的主键自增id,但是导出来的时候主键却不对。怎么解决呢?


看看pd的建表解决这个问题的正确例子吧:

 

 

 

if exists (select 1


from sysobjects

where id = object_id('dbo.T_SA_FIELD')


and type = 'U')


drop table dbo.T_SA_FIELD

go

 


/*==============================================================*/

 

/* Table: T_SA_FIELD */ 软件开发网

/*==============================================================*/


create table dbo.T_SA_FIELD (

 

SAFIELDRECID int identity(1, 1),

 

SARECID int null,


FIELDNAME varchar(1000) null,

constraint PK_T_SA_FIELD primary key (SAFIELDRECID)

软件开发网


ON [PRIMARY]

软件开发网


) 软件开发网

ON [PRIMARY]

go


看看这个语句上面带颜色的部分,对比一下区别,很明显的。我是把SQL Server 2000里的数据库导成sql语句脚本。

 

然后打开pd,选择“file”--“reverse engineer”--“database”选择刚才导出的sql脚本,在sql脚本里面吧相应的内容按着上面的改一下保存。然后再选择“file”--“reverse engineer”--“database”,把刚改过的sql脚本导入pd就OK了。

0
相关文章