到 Database >> Generate Database 產生create 語法檔
結果出錯了,原來產生出來的create table syntax中, 欄位的data type都變成了domain name 了
到 Database >> Edit Current DMBS >> Script >> Objects >> Domain >> Enable , 將Value點選為No即可
但問題又來了, 明明是int和smallint的欄位, 怎麼create table 中變成後加collate ??
/*==============================================================*/
/* Table: BatchLog */
/*==============================================================*/
create table dbo.BatchLog (
BatchLogID int identity(1, 1),
StartDateTime datetime not null,
EndDateTime datetime null,
Status smallint collate Chinese_Taiwan_Stroke_CI_AS not null,
ProjectCode nvarchar(256) collate Chinese_Taiwan_Stroke_CI_AS null,
StartDate int collate Chinese_Taiwan_Stroke_CI_AS null,
EndDate int collate Chinese_Taiwan_Stroke_CI_AS null,
constraint PK_BatchLog primary key (BatchLogID)
on "PRIMARY"
)
on "PRIMARY"
go
有夠奇怪啦...找了半天, 才發現原來剛開始這些table是由現存DB反向轉成PDM的
轉入時,字串欄位在Microsoft 頁籤,都會將Collation name一起轉入
後來當把某些字串欄位分別改成了smallint及int型態時, PD15並未將其Collation name 給清空, 所以在generate script時,就變成了上面那樣了.
最後一個個欄位調整, 重建一下script就OK了.
所以如果有指定collation時,當改變資料型態時要記得自已去刪掉collation 定義.