异常:此数据库没有有效所有者,因此无法安装数据库关系图支持对象。
某一天,在調(diào)試程序時(shí)突然發(fā)現(xiàn),在附加數(shù)據(jù)庫后,想添加關(guān)系表,結(jié)果出來了下面的錯(cuò)誤:
此數(shù)據(jù)庫沒有有效所有者,因此無法安裝數(shù)據(jù)庫關(guān)系圖支持對(duì)象。若要繼續(xù),請(qǐng)首先使用“數(shù)據(jù)庫屬性”對(duì)話框的“文件”頁或ALTER AUTHORIZATION語句將數(shù)據(jù)庫所有者設(shè)置為有效登錄名,然后再添加數(shù)據(jù)庫關(guān)系圖支持對(duì)象。
按照第一種方式更改怎么也不行,并且文件的所有者也是sa。在csdn中找了半天,有個(gè)同志給出了第二種解法,使用ssms。具體在SSMS中運(yùn)行以下命令:
ALTER AUTHORIZATION ON database::mydbname TO sa
把mydbname修改為實(shí)際的數(shù)據(jù)庫名稱,就可以把所有者設(shè)置為sa了。
經(jīng)過一番努力也沒找到ssms,哎。這個(gè)也泡湯了。心中有了重新格系統(tǒng)的想法。
想象一下格系統(tǒng)的麻煩,隨后有百度。在一個(gè)論壇中發(fā)現(xiàn)了這樣的解決辦法:
解決方法如下:
?: m8 t; ~3 M/ v, M' N3 Y
1、設(shè)置兼容級(jí)別為90(2005為90)(2000為80)
USE [master]
GO
EXEC dbo.sp_dbcmptlevel @dbname='數(shù)據(jù)庫名', @new_cmptlevel=90
GO
?
?
或是選擇你還原的數(shù)據(jù)庫,點(diǎn)右鍵,選屬性->選項(xiàng)->兼容級(jí)別,選擇sqlserver2005(90) 然后確定。(呵呵,我就是用這個(gè)方法解決的。呵呵,小小的高興一下)5 n+ A2 r; G3 V' @2 Y( ?
' H- Z% H0 V/ q! ]- h" n" Y
這時(shí),你在該數(shù)據(jù)庫下展開“數(shù)據(jù)庫關(guān)系圖”節(jié)點(diǎn)時(shí)會(huì)有個(gè)提示,"此數(shù)據(jù)庫缺少一個(gè)或多個(gè)使用數(shù)據(jù)庫關(guān)系圖所需的支持對(duì)象,是否創(chuàng)建",選擇“是”即可。
?
2、通過以上的方法操作,如果問題依然存在的話,按下列方法繼續(xù)6 d# ~6 x W2 V
8 S/ N/ n3 | i' Y0 e0 X1 j
選擇你的數(shù)據(jù)庫,然后選擇"安全性"->"用戶",選擇dbo,打開屬性頁,如登錄名為空的話,新建查詢,然后
?
use [你的數(shù)據(jù)庫名]
EXEC sp_changedbowner 'sa'
?
執(zhí)行成功后,你再選擇"數(shù)據(jù)庫關(guān)系圖"節(jié)點(diǎn),時(shí)提示 “此數(shù)據(jù)庫缺少一個(gè)或多個(gè)使用數(shù)據(jù)庫關(guān)系圖所需的支持對(duì)象,是否創(chuàng)建",選擇“是”即可。 就可以看到原先建的關(guān)系圖了。
?
?
呵呵。費(fèi)了很大勁才完成,呵呵。原因可能是,原來的數(shù)據(jù)庫使用sql server2000創(chuàng)建的。把數(shù)據(jù)庫附加到2005上后,解析不了了。
總結(jié)
以上是生活随笔為你收集整理的异常:此数据库没有有效所有者,因此无法安装数据库关系图支持对象。的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux下svn客户端安装及环境配置
- 下一篇: 软件为什么这么复杂