PowerDesigner 16.5对SQL Server 2012 生成数据库时"不支持扩展属性"问题

原文:PowerDesigner 16.5对SQL Server 2012 生成数据库时"不支持扩展属性"问题

团队合作设计一套系统数据模型,创建了PDM后,Table、View、Store Procedure等都创建好了,且创建了多个Schema方便管理这些数据库对象,但Table、view、Column等对象有Comment时(用来在团队不同成员间共享描述信息)

生成数据库时会得到一个提示"不支持扩展属性,或对象不存在",分析发现异常在类似以下语句:

if exists(select 1 from sys.extended_properties p where
      p.major_id = object_id('Environment.Resource')
  and p.minor_id = (select c.column_id from sys.columns c where c.object_id = p.major_id and c.name = 'ResourceCode')
)
begin
   execute sp_dropextendedproperty 'MS_Description',
   'user', 'Environment', 'table', 'Resource', 'column', 'ResourceCode'

end
execute sp_addextendedproperty 'MS_Description',
   '资源编码',
   'user', 'Environment', 'table', 'Resource', 'column', 'ResourceCode'
go

分析原因,发现是由于采用了Schema(上述代码中的Environment),所以sp_addextendedproperty存储过程的第三个参数就应该是SCHEMA而不是user。查询相关资料发现以上SQL语句是基于Powerdesigner自带的对应的.xdb文件生成的,如下图是Column注释信息的SQL代码模板,对应的xdb模板文件存放在powerdesigner安装路径的Sybase\PowerDesigner 16\Resource Files\DBMS\sqlsv2012.xdb

如上图,每个Column的Comment信息均通过以上代码模板生成,所以只需要修改代码模板(将sp_addextendedproperty的第三个参数值由user修改为schema即可)即可让所有对象的Comment生成语句得到修正。

注:在win7以上系统中需要使用管理员权限运行powerdesigner才能将修改后的模板文件保存。

 

时间: 2024-08-01 08:29:16

PowerDesigner 16.5对SQL Server 2012 生成数据库时"不支持扩展属性"问题的相关文章

Powerdesigner 16.5 从SQL Server 2012做逆向工程时提示:Unable to list tables问题

原文:Powerdesigner 16.5 从SQL Server 2012做逆向工程时提示:Unable to list tables问题 公司深圳团队开发有一套系统在华北区这边推向客户,在一次更新补丁时,由于发生了数据字典的变更,但深圳团队并未给出数据库的更新脚本,只给了新版本的数据库创建脚本,为了保证客户方系统中已有数据不丢失,只能自己想办法了:用Powerdesigner把新版本数据库逆向过来后,将此模型Apply到已有数据库中,此时Powerdesigner会比较两个版本的差异,只更新

sql server 2012的数据库实例中的bin可执行文件存放问题

问题描述 sql server 2012的数据库实例中的bin可执行文件存放问题 怎样才能将sql server 2012的数据库实例中的bin可执行文件部分放到c盘,数据部分放到d盘 因为公司是希望C盘是程序,为避免病毒等,以后就固定不要动了 D盘放以后每天工作变动的东西 多谢! 解决方案 安装的时候程序默认装C盘,配置实例的时候可以选D盘啊.SQL Server 2012实例配置 解决方案二: sql server2012附加数据库问题Sql server 2012 创建数据库架构关于SQL

SQL SERVER 2012 修改数据库默认位置不立即生效

今天修改SQL SERVER 2012的数据库默认位置:即数据文件.日志文件默认位置时遇到一个问题,单击"服务器属性"(Server Properties)--> 数据库设置(Database Settings), 修改了数据文件和日志的默认路径.点击确认后再打开该属性窗口,居然发现修改的值变回修改前的值了.刚开始我以为是修改没有生效,没有修改到注册表,但是检 查注册表,在HKEY_LOCAL_MACHINE  -> SOFTWARE -> Microsoft -&g

sql server 2014附加数据库时出错,有关详细信息,请单击“消息”列中的超链接

问题描述 sql server 2014附加数据库时出错,有关详细信息,请单击"消息"列中的超链接 百度上改属性权限之类的都试了,还是不行! 请大神些帮帮忙呀.. 解决方案 他说要你点击超链接,你将附加的左右滚动条滑到最右边,点击就会有错误原因,一般附加报错一个是没有权限,还有可能是版本不兼容,微软都是向下兼容的,比如用2012版本的文件附加到2014就会报错 解决方案二: 标题: Microsoft SQL Server Management Studio -------------

SQL Server 2005附加数据库时Read-Only错误的解决方案_MsSql

SQL Server 2005附加数据库文件时出现了Read-Only错误,附加的时候,系统提示mdf文件为只读,可是打开文件属性,这个属性不为只读.该怎么解决呢?本文我们就介绍了这一解决方案,接下来就让我们来一起了解一下吧. 两种解决方法如下: 1.重新打开数据库软件,在登录认证框那里选择:Windows authentication进行登录.然后再附加数据库,这时附加的就没有Read-Only了. 2.在*.mdf文件的属性里,找到"安全"页,然后把里面所有的"组或用户名

SQL Server 动态生成数据库所有表Insert语句

一. 背景 SQL Server,如果我们需要把数据库A的所有表数据到数据库B中,通常我们会怎么做呢?我会使用SSMS的导入导出功能,进行表数据的导入导出,无可厚非,这样的导入非常简单和方便: 但是,当我们的表有上百个,而且有些表是有自增ID的,那么这个时候使用SSMS的话,你需要一个个手动设置(如图1),你要知道,需要设置上百个的这些选项是件多么痛苦的事情,而且最后很可能会因为外键约束导致导入导出失败. (图1) 虽然SSMS在导入导出的最后一步提供了生成SSIS包的功能,但是对于转移数据的需

SQL Server 2008附加数据库时出错的解决方法

马上就要开始做机房收费系统了,想要了解系统的功能就得先了解前辈的数据库.在得到原数据库charge_sys.mdf和charge_sys.ldf 后,迫不及待地想要附加到SQL Server里. 不过问题来了,在附加数据库首要数据文件charge_sys.mdf 时,出现了"附加数据库出时出错.有关详细信息,请单击"消息"列中的超链接"的错误.如下图: 点击"消息"中的超链接之后,错误提示: 网上查了一下,出现这种错误(错误5120),很可能是因

SQL Server 2012研发团队背后的故事

本文讲的是SQL Server 2012研发团队背后的故事,在切入正题之前,就让浸泡在数据海洋里的我们,看几个并不陌生的场景吧. 场景一:痛苦的升级 三十六岁的吴桐坡是一个电商网站的首席技术官,最近有点头疼:业务旺季就在眼前,现在的内存.盘阵.操作系统和应用平台已经有点扛不住.老板却已发话,今年要基于用户消费行为的统计与分析,上线更多的新品类.唉,又要和部门里的兄弟们熬夜了.好在之前做了不少准备工作,对这次升级的成本和问题心里大概有底."但过去几年,哪次硬件变更和软件升级没出过岔子?我怎么敢跟老

SQL SERVER 2012/2014 链接到 SQL SERVER 2000的各种坑

    本文总结一下SQL SERVER 2012/2014链接到SQL SERVER 2000的各种坑,都是在实际应用中遇到的疑难杂症.可能会有人说怎么还在用SQL SERVER 2000,为什么不升级呢? 每个公司都会有一两个几乎快被人遗忘的系统,接手维护这些系统的人可能都不知换了多少批了.它们的命运注定慢慢消亡.然而偏偏却又生命力顽强,总还有一些 人在使用着这些系统.所以就处在一种尴尬的境地: 升级吧,价值不大,可能再过一两年,这系统就要被其它系统替代了.而且项目经理也没有精力.人手耗费在