PowerDesigner给数据库添加MS_Description出错
2010-07-12 17:39
218 查看
原因:系统函数sp_addextendedproperty 的第四个参数(用户名) 不能为空。但PD在生成的时候却是’’ (空字符串)
解决方法
在PDM时。DataBase >> Edit Current DBMS >> Script >> Object >> Column >> ColumnComment
在value 栏中默认值是:
[%R%?[exec ]][execute ]sp_addextendedproperty [%R%?
]'MS_Description', [%R%?
]%.q:COMMENT%,[%R%?
]'user', [%R%?
]%.q:OWNER%, [%R%?
]'table', [%R%?
]%.q:TABLE%, [%R%?
]'column',
[%R%?
]%.q:COLUMN%
修改后的ColumnComment 如下:(红色为修改的地方)
declare @Cmt%TABLE% varchar(128)
select @Cmt%TABLE% = user_name()
[%R%?[exec ]][execute ]sp_addextendedproperty [%R%?
]'MS_Description',
[%R%?
]%.q:COMMENT%,
%R%?
]'user', [%R%?
]@Cmt%TABLE%, [%R%?
]'table', [%R%?
]%.q:TABLE%,
[%R%?
]'column', [%R%?
]%.q:COLUMN%
结果说出来了,那么我们来分析下,里面具体的参数:
修改前对应生成的脚本,如下:
execute sp_addextendedproperty 'MS_Description',
'管理员名称', 'user', '', 'table', 'Admin', 'column', 'Ad_Name'
Go
我们来分析下,每项内容对应的是什么:
'MS_Description' 指定调用的扩展属性存储过程'MS_Description'
%.q:COMMENT% 扩展属性的value(就是Column属性的Name)
'user' 固定的字符串’user’
'' 这里本应该是用户名,但因为设定问题,这里没有出现. SQL语句的执行异常,就在这里
'Table' 级别 1 对象的类型。
'Admin' 级别 1 对象的名称。
'Column’ 级别 2 对象的类型。
'Ad_Name’ 级别 2 对象的名称。
找到了问题所在.就好办了.
细心的同学会发现. 如果,给Table添加扩展属性MS_Description,则 在运行PD生成的脚本时,不会出问题.那它是怎么处理的呢. 我们可以参考下Table的写法.再来修改Column.
TableComment地址(与ColumnComment类似):
当PDM时。DataBase >> Edit Current DBMS >> Script >> Object >> Table >> TableComment
在与Column扩展属性SQL 脚本的对比中.我们不难发现.Table的脚本中多了几句获取用户名的T-SQL脚本.
declare @CmtAdmin varchar(128)
select @CmtAdmin = user_name()
那,找到对应的PD参数,再修改到ColumnComment 中,就可以了.
最终,修改后的ColumnComment 如下:
declare @Cmt%TABLE% varchar(128)
select @Cmt%TABLE% = user_name()
[%R%?[exec ]][execute ]sp_addextendedproperty [%R%?
]'MS_Description',
[%R%?
]%.q:COMMENT%,
%R%?
]'user', [%R%?
]@Cmt%TABLE%, [%R%?
]'table', [%R%?
]%.q:TABLE%,
[%R%?
]'column', [%R%?
]%.q:COLUMN%
PDM时。DataBase >> Edit Current DBMS >> Script >> Object >> Table >> TableComment
生成后,
declare @CurrentUser sysname
select @CurrentUser = user_name()
execute sp_addextendedproperty 'MS_Description',
'编号',
'user', @CurrentUser, 'table', 'TJ_RESEARCHPARA', 'column', ID
出错:
消息 15135,级别 16,状态 2,过程 sp_addextendedproperty,第 38 行
对象无效。'bsbak.TJ_RESEARCHPARA.YYBH' 不允许有扩展属性,或对象不存在。
改为:
execute sp_addextendedproperty 'MS_Description',
'编号',
'user', 'dbo', 'table', 'TJ_RESEARCHPARA', 'column', ID
本文地址:/article/4961785.html 请
原文标题:过程sp_addextendedproperty对象无效,不允许有扩展属性,或对象不存在
转自:忘记了,有修改。
解决方法
在PDM时。DataBase >> Edit Current DBMS >> Script >> Object >> Column >> ColumnComment
在value 栏中默认值是:
[%R%?[exec ]][execute ]sp_addextendedproperty [%R%?
]'MS_Description', [%R%?
]%.q:COMMENT%,[%R%?
]'user', [%R%?
]%.q:OWNER%, [%R%?
]'table', [%R%?
]%.q:TABLE%, [%R%?
]'column',
[%R%?
]%.q:COLUMN%
修改后的ColumnComment 如下:(红色为修改的地方)
declare @Cmt%TABLE% varchar(128)
select @Cmt%TABLE% = user_name()
[%R%?[exec ]][execute ]sp_addextendedproperty [%R%?
]'MS_Description',
[%R%?
]%.q:COMMENT%,
%R%?
]'user', [%R%?
]@Cmt%TABLE%, [%R%?
]'table', [%R%?
]%.q:TABLE%,
[%R%?
]'column', [%R%?
]%.q:COLUMN%
结果说出来了,那么我们来分析下,里面具体的参数:
修改前对应生成的脚本,如下:
execute sp_addextendedproperty 'MS_Description',
'管理员名称', 'user', '', 'table', 'Admin', 'column', 'Ad_Name'
Go
我们来分析下,每项内容对应的是什么:
'MS_Description' 指定调用的扩展属性存储过程'MS_Description'
%.q:COMMENT% 扩展属性的value(就是Column属性的Name)
'user' 固定的字符串’user’
'' 这里本应该是用户名,但因为设定问题,这里没有出现. SQL语句的执行异常,就在这里
'Table' 级别 1 对象的类型。
'Admin' 级别 1 对象的名称。
'Column’ 级别 2 对象的类型。
'Ad_Name’ 级别 2 对象的名称。
找到了问题所在.就好办了.
细心的同学会发现. 如果,给Table添加扩展属性MS_Description,则 在运行PD生成的脚本时,不会出问题.那它是怎么处理的呢. 我们可以参考下Table的写法.再来修改Column.
TableComment地址(与ColumnComment类似):
当PDM时。DataBase >> Edit Current DBMS >> Script >> Object >> Table >> TableComment
在与Column扩展属性SQL 脚本的对比中.我们不难发现.Table的脚本中多了几句获取用户名的T-SQL脚本.
declare @CmtAdmin varchar(128)
select @CmtAdmin = user_name()
那,找到对应的PD参数,再修改到ColumnComment 中,就可以了.
最终,修改后的ColumnComment 如下:
declare @Cmt%TABLE% varchar(128)
select @Cmt%TABLE% = user_name()
[%R%?[exec ]][execute ]sp_addextendedproperty [%R%?
]'MS_Description',
[%R%?
]%.q:COMMENT%,
%R%?
]'user', [%R%?
]@Cmt%TABLE%, [%R%?
]'table', [%R%?
]%.q:TABLE%,
[%R%?
]'column', [%R%?
]%.q:COLUMN%
PDM时。DataBase >> Edit Current DBMS >> Script >> Object >> Table >> TableComment
生成后,
declare @CurrentUser sysname
select @CurrentUser = user_name()
execute sp_addextendedproperty 'MS_Description',
'编号',
'user', @CurrentUser, 'table', 'TJ_RESEARCHPARA', 'column', ID
出错:
消息 15135,级别 16,状态 2,过程 sp_addextendedproperty,第 38 行
对象无效。'bsbak.TJ_RESEARCHPARA.YYBH' 不允许有扩展属性,或对象不存在。
改为:
execute sp_addextendedproperty 'MS_Description',
'编号',
'user', 'dbo', 'table', 'TJ_RESEARCHPARA', 'column', ID
本文地址:/article/4961785.html 请
原文标题:过程sp_addextendedproperty对象无效,不允许有扩展属性,或对象不存在
转自:忘记了,有修改。
相关文章推荐
- PowerDesigner15.1给自定义架构表字段添加MS_Description出错
- 从visio数据库脚本生成添加 MS_Description 的sql脚本
- sql server 2005 express附加数据库出错解决方法——添加数据库用户
- PowerDesigner 16 生产SQL语句 无法更新或删除属性。“某某”的属性 MS_Description不存在解决研究
- asp.net中使用Global.asax文件中添加应用出错代码,写入系统日志文件或数据库
- asp.net中使用Global.asax文件中添加应用出错代码,写入系统日志文件或数据库
- mysql 创建数据库之添加外建出错问题总结
- PowerDesign 16.0 生成的SQL Server2000 数据库脚本时MS_Description不存在的问题解决
- asp.net中使用Global.asax文件中添加应用出错代码,写入系统日志文件或数据库
- MS SQLServer数据库开发常用汇总(陆续添加..)
- PowerDesigner生成脚本-添加注释出错问题
- PowerDesigner设计数据库后将name自动添加到commit中
- php 评论中添加手机表情,提示插入到数据库中出错,有解决办法
- MS sqlserver数据库恢复出错 database is in use can not be restored
- informix数据库向现存表添加type字段出错
- 数据库操作添加数据 出错 unrecognized token:
- 给新建的ASP.NET网站添加数据库文件出错!
- VS 2008 Server Explorer 添加数据库连接出错
- exchange服务器,出错:MSExchangeIS 5000 (0xc004038a):由于权限不正确或删除了路由组而无法装入数据库
- sql server中如何为数据表添加表的描述MS_Description