sql server所有表的所有者恢复为dbo

来源:互联网 发布:c语言 udp多线程编程 编辑:程序博客网 时间:2024/06/05 02:27

  --执行这个语句,就可以把当前库的所有表的所有者改为dbo

  exec sp_msforeachtable 'sp_changeobjectowner ''?'', ''dbo'''

  --如果是要用户表/存储过程/视图/触发器/自定义函数一齐改,则用游标(不要理会错误提示)

  declare tb cursor local for

  select 'sp_changeobjectowner ''['+replace(user_name(uid),']',']]')+'].['+replace(name,']',']]')+']'',''dbo'''

  from sysobjects

  where xtype in('U','V','P','TR','FN','IF','TF') and status>=0

  open tb

  declare @s nvarchar(4000)

  fetch tb into @s

  while @@fetch_status=0

  begin

  exec(@s)

  fetch tb into @s

  end

  close tb

  deallocate tb

  go

  以SA登陆查询分析器 ,选中你要的数据库

  czbjz.codeplex.com

  执行存储过程

  执行exec Changename ‘原所有者','dbo'

  或exec Changename ‘dbo,'数据库所有者'

  修改MS SQL表用户属性的命令

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

0 0
原创粉丝点击