这两天用PD做数据库建模,在从PDM-->DB时中文备注出现乱码,如:???(DD)
一直以为中文编码问题,可是我试了所有的中文编码方式,还是无法解决问题。
后来发开是PD生成的SQL语句有问题,PD自动生成的样例脚本如下:
execute
sp_addextendedproperty
'
MS_Description
'
,
'
订单编号
'
,
'
user
'
,
'
dbo
'
,
'
table
'
,
'
OrderInfo
'
,
'
column
'
,
'
A1
'
go
我把此脚本此脚本拿到数据库执行,生成字段备注依然为乱码,把脚本改成:
execute
sp_addextendedproperty
'
MS_Description
'
,
N
'
代理费
'
,
'
schema
'
,
'
dbo
'
,
'
table
'
,
'
T1
'
,
'
column
'
,
'
COL1
'
go
之后一中文就可以正常显示。
解决方案:
在PD中 tools-->resources-->dbms-->sql server 2008打开DBMS属性窗口,在general选项卡中选择Microsoft SQL Server 2008-->script-->objects-->column-->columncomment修改其中的内容为:
Code
[%OWNER%?[.O:[execute ][exec ]]sp_addextendedproperty [%R%?[N]]'MS_Description',
[[N]]%.q:COMMENT%,
[%R%?[N]]'schema', [%R%?[N]]%.q:OWNER%, [%R%?[N]]'table', [%R%?[N]]%.q:TABLE%, [%R%?[N]]'column', [%R%?[N]]%.q:COLUMN%
:declare @CurrentUser sysname
select @CurrentUser = user_name()
[.O:[execute ][exec ]]sp_addextendedproperty [%R%?[N]]'MS_Description',
[[N]]%.q:COMMENT%,
[%R%?[N]]'schema', [%R%?[N]]@CurrentUser, [%R%?[N]]'table', [%R%?[N]]%.q:TABLE%, [%R%?[N]]'column', [%R%?[N]]%.q:COLUMN%
保存之后再生成数据库,问题解决。