以前用数据库建立关系图,结果报了这个错误。而后搜索之。html
转自http://www.cnblogs.com/muer/archive/2010/04/14/1711778.htmlsql
此数据库没有有效全部者,所以没法安装数据库关系图支持对象。若要继续,请首先使用“数据库属性”对话框的“文件”页或Alter AUTHORIZATION语句将数据库全部者设置为有效登陆名,而后再添加数据库关系图支持对象。
按照第一种方式更改怎么也不行,而且文件的全部者也是sa。在csdn中找了半天,有个同志给出了第二种解法,使用ssms。具体在SSMS中运行如下命令:
Alter AUTHORIZATION ON database::mydbname TO sa
把mydbname修改成实际的数据库名称,就能够把全部者设置为sa了。
通过一番努力也没找到ssms[呵呵,我在新建查询里执行成功,但没解决问题],哎。这个也泡汤了。心中有了从新格系统的想法。
想象一下格系统的麻烦,随后有百度。在一个论坛中发现了这样的解决办法:
解决方法以下:
一、设置兼容级别为90(2005为90)(2000为80)
use master
GO
EXEC dbo.sp_dbcmptlevel @dbname='数据库名', @new_cmptlevel=90
GO 数据库
以前运行这段代码会报错,缘由是 use master 多是用了中文,我本身敲打一遍,经过。
[这条命令执行完毕:报“DBCC 执行完毕。若是 DBCC 输出了错误信息,请与系统管理员联系”,无论它哦,接下来点击“数据库关系图”,报“此数据库缺乏一个或多个使用数据库关系图所需的支持对象,是否建立”,选择“是”,问题解决了]
或是选择你还原的数据库,点右键,选属性->选项->兼容级别,选择sqlserver2005(90) 而后肯定。(呵呵,我就是用这个方法解决的。呵呵,小小的高兴一下)
这时,你在该数据库下展开“数据库关系图”节点时会有个提示,"此数据库缺乏一个或多个使用数据库关系图所需的支持对象,是否建立",选择“是”便可。
二、经过以上的方法操做,若是问题依然存在的话,按下列方法继续
选择你的数据库,而后选择"安全性"->"用户",选择dbo,打开属性页,如登陆名为空的话,新建查询,而后
use [你的数据库名]
EXEC sp_changedbowner 'sa'
执行成功后,你再选择"数据库关系图"节点,时提示 “此数据库缺乏一个或多个使用数据库关系图所需的支持对象,是否建立",选择“是”便可。 就能够看到原先建的关系图了。 安全
若是执行代码不经过,那多是编码问题,自行敲打即可经过。sqlserver