說說sqlserver2000情況下吧,pd導出sql語句,表是不帶主鍵的。但是這個問題可以解決:
雙擊你在pd裏面所建的表--》選擇“perview”,可以查看這張表的建表語句。
舉個例子:表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
其中,SAFIELDRECID是此表的主鍵自增id,但是導出來的時候主鍵卻不對。怎麼解決呢?
看看pd的建表解決這個問題的正確例子吧:
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了。