• 此数据库没有有效所有者“的解决,我很受用


    之前用数据库创建关系图,结果报了这个错误。然后搜索之。

    转自http://www.cnblogs.com/muer/archive/2010/04/14/1711778.html

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

      之前运行这段代码会报错,原因是 use master 可能是用了中文,我自己敲打一遍,通过。
      [这条命令执行完毕:报“DBCC 执行完毕。如果 DBCC 输出了错误信息,请与系统管理员联系”,不管它哦,接下来点击“数据库关系图”,报“此数据库缺少一个或多个使用数据库关系图所需的支持对象,是否创建”,选择“是”,问题解决了] 
      或是选择你还原的数据库,点右键,选属性->选项->兼容级别,选择sqlserver2005(90) 然后确定。(呵呵,我就是用这个方法解决的。呵呵,小小的高兴一下) 
      这时,你在该数据库下展开“数据库关系图”节点时会有个提示,"此数据库缺少一个或多个使用数据库关系图所需的支持对象,是否创建",选择“是”即可。 
      2、通过以上的方法操作,如果问题依然存在的话,按下列方法继续 
      选择你的数据库,然后选择"安全性"->"用户",选择dbo,打开属性页,如登录名为空的话,新建查询,然后 
      use [你的数据库名] 
      EXEC sp_changedbowner 'sa' 
      执行成功后,你再选择"数据库关系图"节点,时提示 “此数据库缺少一个或多个使用数据库关系图所需的支持对象,是否创建",选择“是”即可。 就可以看到原先建的关系图了。 

         如果执行代码不通过,那可能是编码问题,自行敲打便可通过。

  • 相关阅读:
    今日成长笔记2016-11-18
    牛人博客
    c 、c++、java区别
    Java开发中的23种设计模式详解
    JAVA编程规范
    设计及编码质量改进之降低耦合度
    加密
    敏捷开发之Scrum扫盲篇
    RPC
    李洪强iOS开发Swift篇—04_运算符
  • 原文地址:https://www.cnblogs.com/zlzly/p/3729731.html
Copyright © 2020-2023  润新知