程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> 其他數據庫知識 >> 更多數據庫知識 >> sqlserver 此數據庫沒有有效所有者錯誤的解決方法

sqlserver 此數據庫沒有有效所有者錯誤的解決方法

編輯:更多數據庫知識

某一天,在調試程序時突然發現,在附加數據庫後,想添加關系表,結果出來了下面的錯誤:
  此數據庫沒有有效所有者,因此無法安裝數據庫關系圖支持對象。若要繼續,請首先使用“數據庫屬性”對話框的“文件”頁或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上後,解析不了了。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved