把sql server所有表的所有者改为dbo

时间:2008-03-30 11:18:11  来源:  作者:

--执行这个语句,就可以把当前库的所有表的所有者改为dbogTX第一天空网络
exec sp_msforeachtable 'sp_changeobjectowner ''?'', ''dbo''' gTX第一天空网络

--如果是要用户表/存储过程/视图/触发器/自定义函数一齐改,则用游标(不要理会错误提示)gTX第一天空网络
declare tb cursor local forgTX第一天空网络
select 'sp_changeobjectowner ''['+replace(user_name(uid),']',']]')+'].['+replace(name,']',']]')+']'',''dbo'''gTX第一天空网络
from sysobjectsgTX第一天空网络
where xtype in('U','V','P','TR','FN','IF','TF') and status>=0gTX第一天空网络
open tbgTX第一天空网络
declare @s nvarchar(4000)gTX第一天空网络
fetch tb into @sgTX第一天空网络
while @@fetch_status=0gTX第一天空网络
begingTX第一天空网络
exec(@s)gTX第一天空网络
fetch tb into @sgTX第一天空网络
endgTX第一天空网络
close tbgTX第一天空网络
deallocate tbgTX第一天空网络
go gTX第一天空网络

以SA登陆查询分析器 ,选中你要的数据库gTX第一天空网络
执行存储过程gTX第一天空网络
执行exec Changename ‘原所有者','dbo'gTX第一天空网络
或exec Changename ‘dbo,'数据库所有者' gTX第一天空网络

修改MS SQL表用户属性的命令 gTX第一天空网络

可以用exec sp_changeobjectowner ‘dataname.数据表','dbo' 把表或存储过程中的所有者都改成dbo gTX第一天空网络

文章评论

共有 位天空网友发表了评论 查看完整内容

特别推荐
  • 文字广告
  • 文字广告
  • 文字广告
  • 文字广告
站长黑板报