解决PowerDesigner 16 Generate Datebase For Sql2005/2008 对象名sysproperties无效的问题

在PowerDesigner 16 中生成的sql语句,在执行的时候报错:对象名sysproperties 无效的错误;造成此问题的原因是由于Sql 2005、2008 删除了系统表 sysproperties 而改用 sys.extended_properties 表所致 , 以下是通过创建sysproperties视图,以及修改powerdesigner sql语句生成模板后,

再生成数据库SQL脚本执行,共分为三部:

第一步:在Sql 2005/2008 Exec the Sql 创建View ‘sysproperties‘

if exists (select 1 from sysobjects where name = ‘sysproperties‘and xtype = ‘V‘)

begin

DROP VIEW sysproperties

end

GO

CREATE VIEW sysproperties

AS

SELECT A.name As TableName,

A.id As TableID,B.Name As ColName,B.colid As ColID,

B.xtype As ColType,C.name As PropName,C.Value As PropValue

FROM sysobjects As A INNER JOIN syscolumns As B ON A.id = B.id

INNER JOIN sys.extended_properties As C ON C.major_id = A.id

AND ( minor_id = B.colid)

第二 步: 修改Table TableComment模板 路径是 Database -> Edit Current DBMS 窗体 General 选项卡 下 Script -> Objects -> Table -> TableComment

[if exists (select 1

from sys.extended_properties

where major_id = object_id(‘[%QUALIFIER%]%TABLE%‘)

and minor_id = 0 and name = ‘MS_Description‘)

begin

[%OWNER%?[.O:[execute ][exec ]]sp_dropextendedproperty [%R%?[N]]‘MS_Description‘,

[%R%?[N]]‘user‘, [%R%?[N]]%.q:OWNER%, [%R%?[N]]‘table‘, [%R%?[N]]%.q:TABLE%

:declare @CurrentUser sysname

select @CurrentUser = user_name()

[.O:[execute ][exec ]]sp_dropextendedproperty [%R%?[N]]‘MS_Description‘,

[%R%?[N]]‘user‘, [%R%?[N]]@CurrentUser, [%R%?[N]]‘table‘, [%R%?[N]]%.q:TABLE%

]

end

][%OWNER%?[.O:[execute ][exec ]]sp_addextendedproperty [%R%?[N]]‘MS_Description‘,

[%R%?[N]]%.q:COMMENT%,

[%R%?[N]]‘user‘, [%R%?[N]]%.q:OWNER%, [%R%?[N]]‘table‘, [%R%?[N]]%.q:TABLE%

:select @CurrentUser = user_name()

[.O:[execute ][exec ]]sp_addextendedproperty [%R%?[N]]‘MS_Description‘,

[%R%?[N]]%.q:COMMENT%,

[%R%?[N]]‘user‘, [%R%?[N]]@CurrentUser, [%R%?[N]]‘table‘, [%R%?[N]]%.q:TABLE%

]

第三步:修改Column ColumnComment模板 路径是 Database -> Edit Current DBMS 窗体 General 选项卡 下 Script -> Objects -> Column -> ColumnComment

[if exists (select 1

from sysproperties

where TableID = object_id(‘[%QUALIFIER%]%TABLE%‘)

and ColName = %.q:COLUMN% AND PropName=‘MS_Description‘)

begin

[%OWNER%?[.O:[execute ][exec ]]sp_dropextendedproperty [%R%?[N]]‘MS_Description‘,

[%R%?[N]]‘user‘, [%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_dropextendedproperty [%R%?[N]]‘MS_Description‘,

[%R%?[N]]‘user‘, [%R%?[N]]@CurrentUser, [%R%?[N]]‘table‘, [%R%?[N]]%.q:TABLE%, [%R%?[N]]‘column‘, [%R%?[N]]%.q:COLUMN%

]

end

][%OWNER%?[.O:[execute ][exec ]]sp_addextendedproperty [%R%?[N]]‘MS_Description‘,

[%R%?[N]]%.q:COMMENT%,

[%R%?[N]]‘user‘, [%R%?[N]]%.q:OWNER%, [%R%?[N]]‘table‘, [%R%?[N]]%.q:TABLE%, [%R%?[N]]‘column‘, [%R%?[N]]%.q:COLUMN%

:select @CurrentUser = user_name()

[.O:[execute ][exec ]]sp_addextendedproperty [%R%?[N]]‘MS_Description‘,

[%R%?[N]]%.q:COMMENT%,

[%R%?[N]]‘user‘, [%R%?[N]]@CurrentUser, [%R%?[N]]‘table‘, [%R%?[N]]%.q:TABLE%, [%R%?[N]]‘column‘, [%R%?[N]]%.q:COLUMN%

]

时间: 2024-10-24 14:56:10

解决PowerDesigner 16 Generate Datebase For Sql2005/2008 对象名sysproperties无效的问题的相关文章

PowerDesigner16 生成的备注脚本,在sql server 2008 中报“对象名 'sysproperties' 无效”的错误的解决办法

主要是在建模时我们对表.列增加了些说明注释,而Sql2005之后系统表sysproperties已废弃删除而改用sys.extended_properties所致. 1.修改Table TableComment 部分 菜单Database -> Edit Current DBMS 窗体 General 选项卡 下 Script -> Objects -> Table –> TableComment 在开头部分替换如下: [if exists (select 1           

PD16 Generate Datebase For Sql2008R2时报脚本错误“对象名sysproperties无效”

PowerDesinger16创建数据库表到SQL2008R2时,执行报“对象名sysproperties无效”错误. 主要是在建模时我们对表.列增加了些说明注释,而Sql2005之后系统表sysproperties已废弃删除而改用sys.extended_properties所致. 此问题解决主要参考了http://hi.baidu.com/xuefliang/item/45e7f71421d5a67871d5e8e2, 1.修改Table TableComment模板 路径是 Databas

SQL对象名无效的解决

SQL对象名无效的解决方法 产生SQL对象名无效的问题大多原因是由于数据迁移导致的,下面我们给出解决方法. 在使用数据库的过程中,经常会遇到数据库迁移或者数据迁移的问题,或者有突然的数据库损坏,这时需要从数据库的备份中直接恢复.但是,此时会出现问题,这里说明几种常见问题的解决方法. 一.孤立用户的问题 比如,以前的数据库的很多表是用户test建立的,但是当我们恢复数据库后,test用户此时就成了孤立用户,没有与之对应的登陆用户名,哪怕你建立了一个test登录用户名,而且是以前的用户密码,用该用户

SQL2005/2008 无法连接错误

SQL2005/2008 .或者是localhost可以访问,但是127.0.0.1或者IP无法访问 打开[SQL Server 配置管理器](如果是MSSQL2005,在运行中输入SQLServerManager.msc回车)(如果是MSSQL2008或R2,在运行中输入SQLServerManager10.msc回车)-->单击[SQL Server]服务-->打开[属性]对话框,检查登录身份--选择内置账户--local system.-->重启服务.

SQL2012分页offset fetch 比较SQL2005/2008的ROW_Number

SQL2005/2008的Row_Number http://www.cnblogs.com/Snowfun/archive/2011/10/10/2205772.html 1.OFFSET和FETCH:这两个关键字在MSDN原型使用方式如代码1所示 OFFSET使用起来很简单,首先在OFFSET之后指定从哪条记录开始取.其中,取值的数可以是常量也可以是变量或者表达式.然后通过FETCH关键字指定取多少条记录.其中,FIRST和NEXT是同义词,和前面的ROW和ROWS一样,它们可以互相替换.同

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

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

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 = ob

解决 Failed to generate the sample for media type 'application/x-www-form-urlencoded'.

Asp.net MVC WebAPI 生成帮助文档时对于API的参数是自定义类型的会遇到本错误. API.Areas.HelpPage.HelpPageConfig 的 Register 方法中 可以将以下代码注释去掉以消除该错误. //// Uncomment the following to use "[0]=foo&[1]=bar" directly as the sample for all actions that support form URL encoded f

对象名master.dbo.spt_values无效解决办法

找到sql server安装目录下的u_tables.sql,例如:E:\Program Files (x86)\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\MSSQL\Install 在出现 对象名master.dbo.spt_values无效解决办法错误的执行一下脚本就可以修复 原文地址:https://www.cnblogs.com/yy981420974/p/8297422.html