Power Designer 生成的sql在sqlserver2008报sysproperties无效的问题

今天用PD 16生成sql建表语句,PD配置的数据库也是sql server 2008,结果生成的插入字段描述的语句报对象名sysproperties无效,经过查找得知这个系统表在sqlserver 2005和2008中已经没有了,替换成系统表sys.extended_properties了,经过综合了网上各位大侠的意见,我的处理方法如下:

1、先用PD生成sql代码

2、将sysproperties替换成(SELECT class AS id,Minor_id AS type,* from sys.extended_properties) _a

 

即PD生成的代码:

if exists (select 1
            from  sysproperties
           where  id = object_id('t_w_a_accept_apply_sort')
            and   type = 4)
begin


   declare @CurrentUser sysname
select @CurrentUser = user_name()
execute sp_dropextendedproperty 'MS_Description',
   'user', @CurrentUser, 'table', 't_w_a_accept_apply_sort', 'column', 'accept_apply_sort'


end

 

替换后的代码:

if exists (select 1
            from  (SELECT class AS id,Minor_id AS type,* from sys.extended_properties) _a
           where  id = object_id('t_w_a_accept_apply_sort')
            and   type = 4)
begin


   declare @CurrentUser sysname
select @CurrentUser = user_name()
execute sp_dropextendedproperty 'MS_Description',
   'user', @CurrentUser, 'table', 't_w_a_accept_apply_sort', 'column', 'accept_apply_sort'


end

 

如此,全部替换一下,代码就执行成功了,不过我还不太清楚新表的Minor_id 和原表的type是不是同一个意思,有待提高哇。

 

另外,我还找到了一个办法,是受小F姐姐的启发,让PD在生成代码的时候就改过来,那就得修改PD的代码模板了,方法如下:

tools-->resources-->dbms-->sql server 2008

双击sql server 2008打开DBMS属性窗口,在general选项卡中选择Microsoft SQL Server 2008-->script-->objects-->Column-->ColumnComment

在对话框的右边就可以看到生成代码的模板了,哇,原来PD的代码是根据这个来生成的(嘿嘿,见识短浅,见笑了)。

将模板中的sysproperties替换成(SELECT class AS id,Minor_id AS type,* from sys.extended_properties) _a之后,再生成的sql代码就不会出现了。

 

这样就不用每次生成完代码还要再替换一次了,可以直接运行。不过话说在做这种系统级的修改的时候,有点忐忑的说,呵呵。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值