SQL2000 修改表所有者的方法

2022-02-23 01:59:09 字數 983 閱讀 5465

單個修改所有者sql語句如下:

查詢分析器輸入:exec sp_changeobjectowner 'user.table', 'dbo'

user.table的意思為:所有者.表名,比如oblog.oblog_user,以前的語句表示將table這張表的所有者由

user改成dbo

批量修改所有者語句如下:

查詢分析器輸入:exec sp_msforeachtable 'sp_changeobjectowner ''?'', ''dbo'''

即可把當面表的所有所有者換成dbo

第二種方法:

更改資料庫所有者並不能影響已經建立的表的所有者,你需要使用sp_changeobjectower來改變物件的所有者,並且物件的所有者sa對應的是dbo

以下語句是利用游標,讀取mydb帳戶擁有的所有物件,並將其所有者更改為sa

另外如果之前本地不存在mydb帳戶,可能會導致孤立帳戶的出現,你先試試能不能成功吧,如果不行,再提供給你解決方法。

declare cur cursor for

select name

from sysobjects

where uid=user_id('mydb')

declare @name sysname

declare @sqlstr varchar(5000)

open cur

fetch next from cur

into @name

while @@fetch_status=0

begin

set @sqlstr='exec sp_changeobjectowner ''mydb.'+@name+''',''dbo'''

exec (@sqlstr)

fetch next from cur

into @name

end

close cur

deallocate cur

修改表的所有者

declare tb cursor local for select sp changeobjectowner replace user name uid replace name,dbo from sysobjects where xtype u and status 0 and user nam...

SQLServer修改表所有者

批量修改 exec sp msforeachtable exec sp changeobjectowner dbo 單個修改 exec sp changeobjectowner 要改的表名 dbo 只有所有者才能更改表的所有者 有很伺服器 訊息 15001,級別 16,狀態 1,過程 sp chan...

SQLServer修改表所有者

批量修改 exec sp msforeachtable exec sp changeobjectowner dbo 單個修改 exec sp changeobjectowner 要改的表名 dbo 只有所有者才能更改表的所有者 有很伺服器 訊息 15001,級別 16,狀態 1,過程 sp chan...