说说sqlserver2000情况下吧,pd导出sql语句,表是不带主键的。但是这个问题可以解决:
双击你在pd里面所建的表--》选择“perview”,可以查看这张表的建表语句。
举个例子:表1
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
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
其中,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
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
看看这个语句上面带颜色的部分,对比一下区别,很明显的。我是把sqlserver2000里的数据库导成sql语句脚本。
然后打开pd,选择“file”--“reverse engineer”--“database”选择刚才导出的sql脚本,在sql脚本里面吧相应的内容按着上面的改一下保存。然后再选择“file”--“reverse engineer”--“database”,把刚改过的sql脚本导入pd就OK了。