sqlserver 此数据库没有有效所有者错误的解决方法
程序员文章站
2023-12-05 17:42:04
某一天,在调试程序时突然发现,在附加数据库后,想添加关系表,结果出来了下面的错误: 此数据库没有有效所有者,因此无法安装数据库关系图支持对象。若要继续,请首先使用“数据...
某一天,在调试程序时突然发现,在附加数据库后,想添加关系表,结果出来了下面的错误:
此数据库没有有效所有者,因此无法安装数据库关系图支持对象。若要继续,请首先使用“数据库属性”对话框的“文件”页或alter authorization语句将数据库所有者设置为有效登录名,然后再添加数据库关系图支持对象。
按照第一种方式更改怎么也不行,并且文件的所有者也是sa。在csdn中找了半天,有个同志给出了第二种解法,使用ssms。具体在ssms中运行以下命令:
alter authorization on database::mydbname to sa
把mydbname修改为实际的数据库名称,就可以把所有者设置为sa了。
经过一番努力也没找到ssms[呵呵,我在新建查询里执行成功,但没解决问题],哎。这个也泡汤了。心中有了重新格系统的想法。
想象一下格系统的麻烦,随后有百度。在一个论坛中发现了这样的解决办法:
解决方法如下:
1、设置兼容级别为90(2005为90)(2000为80)
use [master]
go
exec dbo.sp_dbcmptlevel @dbname='数据库名', @new_cmptlevel=90
go
[这条命令执行完毕:报“dbcc 执行完毕。如果 dbcc 输出了错误信息,请与系统管理员联系”,不管它哦,接下来点击“数据库关系图”,报“此数据库缺少一个或多个使用数据库关系图所需的支持对象,是否创建”,选择“是”,问题解决了]
或是选择你还原的数据库,点右键,选属性->选项->兼容级别,选择sqlserver2005(90) 然后确定。(呵呵,我就是用这个方法解决的。呵呵,小小的高兴一下)
这时,你在该数据库下展开“数据库关系图”节点时会有个提示,"此数据库缺少一个或多个使用数据库关系图所需的支持对象,是否创建",选择“是”即可。
2、通过以上的方法操作,如果问题依然存在的话,按下列方法继续
选择你的数据库,然后选择"安全性"->"用户",选择dbo,打开属性页,如登录名为空的话,新建查询,然后
use [你的数据库名]
exec sp_changedbowner 'sa'
执行成功后,你再选择"数据库关系图"节点,时提示 “此数据库缺少一个或多个使用数据库关系图所需的支持对象,是否创建",选择“是”即可。 就可以看到原先建的关系图了。
呵呵。费了很大劲才完成,呵呵。原因可能是,原来的数据库使用sql server2000创建的。把数据库附加到2005上后,解析不了了。
此数据库没有有效所有者,因此无法安装数据库关系图支持对象。若要继续,请首先使用“数据库属性”对话框的“文件”页或alter authorization语句将数据库所有者设置为有效登录名,然后再添加数据库关系图支持对象。
按照第一种方式更改怎么也不行,并且文件的所有者也是sa。在csdn中找了半天,有个同志给出了第二种解法,使用ssms。具体在ssms中运行以下命令:
alter authorization on database::mydbname to sa
把mydbname修改为实际的数据库名称,就可以把所有者设置为sa了。
经过一番努力也没找到ssms[呵呵,我在新建查询里执行成功,但没解决问题],哎。这个也泡汤了。心中有了重新格系统的想法。
想象一下格系统的麻烦,随后有百度。在一个论坛中发现了这样的解决办法:
解决方法如下:
1、设置兼容级别为90(2005为90)(2000为80)
use [master]
go
exec dbo.sp_dbcmptlevel @dbname='数据库名', @new_cmptlevel=90
go
[这条命令执行完毕:报“dbcc 执行完毕。如果 dbcc 输出了错误信息,请与系统管理员联系”,不管它哦,接下来点击“数据库关系图”,报“此数据库缺少一个或多个使用数据库关系图所需的支持对象,是否创建”,选择“是”,问题解决了]
或是选择你还原的数据库,点右键,选属性->选项->兼容级别,选择sqlserver2005(90) 然后确定。(呵呵,我就是用这个方法解决的。呵呵,小小的高兴一下)
这时,你在该数据库下展开“数据库关系图”节点时会有个提示,"此数据库缺少一个或多个使用数据库关系图所需的支持对象,是否创建",选择“是”即可。
2、通过以上的方法操作,如果问题依然存在的话,按下列方法继续
选择你的数据库,然后选择"安全性"->"用户",选择dbo,打开属性页,如登录名为空的话,新建查询,然后
use [你的数据库名]
exec sp_changedbowner 'sa'
执行成功后,你再选择"数据库关系图"节点,时提示 “此数据库缺少一个或多个使用数据库关系图所需的支持对象,是否创建",选择“是”即可。 就可以看到原先建的关系图了。
呵呵。费了很大劲才完成,呵呵。原因可能是,原来的数据库使用sql server2000创建的。把数据库附加到2005上后,解析不了了。
推荐阅读
-
sqlserver 此数据库没有有效所有者错误的解决方法
-
解决SQL Server的“此数据库没有有效所有者”问题
-
此数据库没有有效所有者,因此无法安装数据库关系图支持对象
-
SQLSERVER数据库中的5173错误解决方法
-
SQLServer2000 报1053错误(服务没有及时响应或控制请求)的解决方法
-
sqlserver还原数据库的时候出现提示无法打开备份设备的解决方法(设备出现错误或设备脱)
-
SQLServer无法打开用户默认数据库 登录失败错误4064的解决方法
-
解决SQL Server的“此数据库没有有效所有者”问题
-
此数据库没有有效所有者,因此无法安装数据库关系图支持对象
-
解决SQL Server的“此数据库没有有效所有者”问题