重新建一个所有者为dbo的表,然后 insert into 新表 from  select * from 原表

解决方案 »

  1.   

    exec sp_changeobjectowner 'tablename','dbo'
      

  2.   

    exec sp_changeobjectowner 'tablename','dbo'
      

  3.   

    改所有表的所有者为dbo:
    exec sp_MSForEachTable 'exec sp_changeobjectowner ''?'',''dbo'''
      

  4.   

    exec sp_changeobjectowner 'tablename','dbo'
      

  5.   

    在企业管理器中-->右键你的注册的服务器实例(就是那个有绿色图标的)-->选择编辑SQL Server注册属性-->
    最下面的三个复选框-->取消选择中间的那一个(显示系统数据库和系统对象)
      

  6.   

    Transact-SQL 参考  
    sp_changedbowner
    更改当前数据库的所有者。语法
    sp_changedbowner [ @loginame = ] 'login'
        [ , [ @map = ] remap_alias_flag ]参数
    [@loginame =] 'login'当前数据库新所有者的登录 ID。login 的数据类型为 sysname,没有默认值。login 必须是已存在的 Microsoft® SQL Server™ 登录或 Microsoft Windows NT® 用户。如果 login 通过当前数据库内的现有别名或用户安全帐户已拥有访问该数据库的权限,则不能成为该数据库的所有者。为了避免这种情况,应先除去当前数据库中的别名或用户。[@map =] remap_alias_flag值为 true 或 false,表示旧数据库所有者 (dbo) 的现有别名是映射到当前数据库的新所有者还是要除去。remap_alias_flag 的数据类型为 varchar(5),默认值为 NULL,表示旧 dbo 的任何现有别名均映射到当前数据库的新所有者。false 表示除去旧数据库所有者的现有别名。返回代码值
    0(成功)或 1(失败)注释
    执行 sp_changedbowner 之后,新所有者称为数据库中的 dbo 用户。dbo 拥有执行数据库中所有活动的暗示性权限。不能更改 master、model 或 tempdb 系统数据库的所有者。若要显示有效 login 值的列表,请执行 sp_helplogins 存储过程。执行只有 login 参数的 sp_changedbowner 会将数据库所有权改为 login,并将先前别名为 dbo 的用户别名映射到新数据库所有者。权限
    只有 sysadmin 固定服务器角色成员的成员或当前数据库的所有者才能执行 sp_changedbowner。示例
    下面的示例使用户 Albert 成为当前数据库的所有者,并将旧数据库所有者的现有别名映射到 Albert。EXEC sp_changedbowner 'Albert'
    请参见CREATE DATABASEsp_dropaliassp_dropusersp_helpdbsp_helplogins系统存储过程©1988-2000 Microsoft Corporation。保留所有权利。