zoukankan      html  css  js  c++  java
  • 异常:数据库没有有效所有者,因此无法安装数据库关系图支持对象

    某一天,在调试程序时突然发现,在附加数据库后,想添加关系表,结果出来了下面的错误:

    此数据库没有有效所有者,因此无法安装数据库关系图支持对象。若要继续,请首先使用“数据库属性”对话框的“文件”页或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


    或是选择你还原的数据库,点右键,选属性->选项->兼容级别,选择sqlserver2005(90) 然后确定。(呵呵,我就是用这个方法解决的。呵呵

    ,小小的高兴一下)
    这时,你在该数据库下展开“数据库关系图”节点时会有个提示,"此数据库缺少一个或多个使用数据库关系图所需的支持对象,是否创建",选

    择“是”即可。

    2、通过以上的方法操作,如果问题依然存在的话,按下列方法继续
    选择你的数据库,然后选择"安全性"->"用户",选择dbo,打开属性页,如登录名为空的话,新建查询,然后

    use [你的数据库名]
    EXEC sp_changedbowner 'sa'

    执行成功后,你再选择"数据库关系图"节点,时提示 “此数据库缺少一个或多个使用数据库关系图所需的支持对象,是否创建",选择“是”

    即可。 就可以看到原先建的关系图了。

    呵呵。费了很大劲才完成,呵呵。原因可能是,原来的数据库使用sql server2000创建的。把数据库附加到2005上后,解析不了了。

    作者:少帅

    出处:少帅的博客--http://www.cnblogs.com/wang3680

    您的支持是对博主最大的鼓励,感谢您的认真阅读。

    本文版权归作者所有,欢迎转载,但请保留该声明。

    支付宝 微信
  • 相关阅读:
    递归的小实例
    try-catch-finally实例
    集合的排序(正序,倒序,从大到小排序)
    数组的排序(sort和冒泡)
    拦截器的使用,不登录用户不能进行其他操作
    把日志从数据库导出到Excel表格中(poi)
    Java 对Excel进行导入操作
    java 面试题集锦
    端口被占用解决办法
    (转)Java 最常见的 200+ 面试题汇总
  • 原文地址:https://www.cnblogs.com/wang3680/p/2986338.html
Copyright © 2011-2022 走看看