2、通過以上的方法操作,如果問題依然存在的話,按下列方法繼續(xù)
選擇你的數(shù)據(jù)庫(kù),然后選擇"安全性"->"用戶",選擇dbo,打開屬性頁,如登錄名為空的話,新建查詢,然后
use [你的數(shù)據(jù)庫(kù)名]
EXEC sp_changedbowner 'sa'
執(zhí)行成功后,你再選擇"數(shù)據(jù)庫(kù)關(guān)系圖"節(jié)點(diǎn),時(shí)提示 “此數(shù)據(jù)庫(kù)缺少一個(gè)或多個(gè)使用數(shù)據(jù)庫(kù)關(guān)系圖所需的支持對(duì)象,是否創(chuàng)建",選擇“是”即可。 就可以看到原先建的關(guān)系圖了。
從服務(wù)器上作導(dǎo)入導(dǎo)出至本地機(jī)上,數(shù)據(jù)庫(kù)中的表都在,可是表名前段的架構(gòu)身份不是“dbo”了,而是服務(wù)器上數(shù)據(jù)庫(kù)的“庫(kù)名”。這樣架構(gòu)身份不同了,程序運(yùn)行就出問題了。試過單個(gè)修改表,在sql2005的屬性窗口可以更改架構(gòu)者,可是N多表哪兒能手動(dòng)改得過來呀!還請(qǐng)高手指點(diǎn)批量更改的方法。在此謝過。
SQL Server2005可以使用系統(tǒng)存儲(chǔ)過程sp_changeobjectowner更改數(shù)據(jù)庫(kù)對(duì)象的所有者。
sp_changeobjectowner '對(duì)象名(包括架構(gòu)名)','新架構(gòu)名'
批量修改請(qǐng)用:
方法一:使用游標(biāo)
declare @name sysname
declare csr1 cursor
for
select TABLE_NAME from INFORMATION_SCHEMA.TABLES
open csr1
FETCH NEXT FROM csr1 INTO @name
while (@@FETCH_STATUS=0)
BEGIN
SET @name='原架構(gòu)名.'+@name
EXEC SP_ChangeObjectOwner @name, '新架構(gòu)名'
fetch next from csr1 into @name
END
CLOSE csr1
DEALLOCATE csr1
北京 | 天津 | 上海 | 江蘇 | 山東 |
安徽 | 浙江 | 江西 | 福建 | 深圳 |
廣東 | 河北 | 湖南 | 廣西 | 河南 |
海南 | 湖北 | 四川 | 重慶 | 云南 |
貴州 | 西藏 | 新疆 | 陜西 | 山西 |
寧夏 | 甘肅 | 青海 | 遼寧 | 吉林 |
黑龍江 | 內(nèi)蒙古 |