SQL2000 修改表所有者的方法
单个修改所有者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
 
                    
                
 
 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号