PD设置生成SQL column不含有collate chinese_prc_ci_as

使用PD导出sql脚本。

没有设置PD时导出的sql脚本为:

Sql代码  收藏代码
  1. create table dbo.t_call_note (  
  2.      id                   int                  identity(100,1),  
  3.      caller               varchar(32)          collate Chinese_PRC_Stroke_90_CS_AS_KS_WS not null,  
  4.      called               varchar(32)          collate Chinese_PRC_Stroke_90_CS_AS_KS_WS not null,  
  5.      ring_time            char(19)             collate Chinese_PRC_Stroke_90_CS_AS_KS_WS not null,  
  6.      talk_time            char(19)             collate Chinese_PRC_Stroke_90_CS_AS_KS_WS null,  
  7.      end_time             char(19)             collate Chinese_PRC_Stroke_90_CS_AS_KS_WS null,  
  8.      user_no              varchar(50)          collate Chinese_PRC_Stroke_90_CS_AS_KS_WS not null,  
  9.      user_name            varchar(50)          collate Chinese_PRC_Stroke_90_CS_AS_KS_WS not null,  
  10.      talk_long            varchar(50)          collate Chinese_PRC_Stroke_90_CS_AS_KS_WS null,  
  11.      call_Id              varchar(50)          collate Chinese_PRC_Stroke_90_CS_AS_KS_WS not null,  
  12.      user_pk              int                  collate Chinese_PRC_Stroke_90_CS_AS_KS_WS not null,  
  13.      create_time          char(19)             collate Chinese_PRC_Stroke_90_CS_AS_KS_WS not null,  
  14.    constraint PK_T_CALL_INFO primary key (id)  
  15.          on "PRIMARY"  
  16. )  
  17. on "PRIMARY"  
  18. go  

 

上面的sql包含collate Chinese_PRC_Stroke_90_CS_AS_KS_WS not null,这是一种排序方式。

但是在执行sql时就会出现错误.如果column为int时就会报错。那么我们如果如下设置,问题不再是问题了!哈哈

 

1.点击:工具栏-》database-》edit current DBMS

2.选择数据源(以SqlServer2005为例)

Microsoft SQLServer2005\Script\Objects\Column\Add

右边的Values值为:

Powerdesigner代码  收藏代码
  1. %20:COLUMN% [%COMPUTE%?AS (%COMPUTE%):[%.L:DATATYPE%=xml?xml[%XMLSchemaCollection%?([%ContentType% ]%XMLSchemaCollection.GeneratedName%):                 ]:%20:DATATYPE%][.Z:[ collate %ExtCollation%][%ExtRowGuidCol%? RowGuidCol][%IDENTITY%? %IDENTITY%[[(%ExtIdentitySeedInc%)][%ExtIdtNotForReplication%? not for replication]]:[%ExtNullConstName%? constraint %ExtNullConstName%][ %NULL%][ %NOTNULL%]][[%ExtDeftConstName%? constraint %ExtDeftConstName%] default %DEFAULT%]]  
  2.  [%CONSTDEFN%]]  

 修改为:

Powerdesigner代码  收藏代码
  1. %20:COLUMN% [%COMPUTE%?AS (%COMPUTE%):[%.L:DATATYPE%=xml?xml[%XMLSchemaCollection%?([%ContentType% ]%XMLSchemaCollection.GeneratedName%):                 ]:%20:DATATYPE%][%ExtRowGuidCol%? RowGuidCol][%IDENTITY%? %IDENTITY%[[(%ExtIdentitySeedInc%)][%ExtIdtNotForReplication%? not for replication]]:[%ExtNullConstName%? constraint %ExtNullConstName%][ %NULL%][ %NOTNULL%]][[%ExtDeftConstName%? constraint %ExtDeftConstName%] default %DEFAULT%]  
  2.    [%CONSTDEFN%]]  

 修改的内容就是去掉:[.Z:[ collate %ExtCollation%]以及最后一个"]"

再次导出sql脚本就不会出现collate Chinese_PRC_Stroke_90_CS_AS_KS_WS not null.

如下:

Sql代码  收藏代码
  1. create table dbo.t_call_note (  
  2.      id                   int                  identity(100,1),  
  3.      caller               varchar(32)          not null,  
  4.      called               varchar(32)          not null,  
  5.      ring_time            char(19)             not null,  
  6.      talk_time            char(19)             null,  
  7.      end_time             char(19)             null,  
  8.      user_no              varchar(50)          not null,  
  9.      user_name            varchar(50)          not null,  
  10.      talk_long            varchar(50)          null,  
  11.      call_Id              varchar(50)          not null,  
  12.      user_pk              int                  not null,  
  13.      create_time          char(19)             not null,  
  14.    constraint PK_T_CALL_INFO primary key (id)  
  15.          on "PRIMARY"  
  16. )  
  17. on "PRIMARY"  
  18. go  

 

希望能有更好的办法。这只是小弟不才自己找到的解决办法。希望对大家有所帮助

posted @ 2012-04-07 20:28  木枫  阅读(171)  评论(0)    收藏  举报