Robin's Blog

记录 积累 学习 成长

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

sa帐号都不能查其它用户建的表吗?报没有对象错——如何解决?

  备份恢复了一个数据库,有许多数据表,是用sa以外的用户创建的。比如a.table1,dbo.table2,   在查询分析器中以sa登录发现查不出数据来。  
  比如sa帐号,查table1,只写select   *   from   table1,就报错,一定要写  
  select   *   from   a.table1,但是因为表名都是用程序动态产生的,不好处理。

  必须让sa能够查询,找到如下的方法:
  因为其他用户创建的表的所有者都不是dbo的,而不指定所有者的查询,默认是用dbo的,所以有这个问题.  
   
  解决方法是查询的时候加上所有者或者将所有表的所有者设置成dbo

--执行这句就可以将所有表的所有者设置成dbo  
  sp_msforeachtable   'sp_changeobjectowner   ''?'',''dbo'''

posted on 2009-04-17 15:44  Robin99  阅读(196)  评论(0编辑  收藏  举报