單個修改所有者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...