现用户表中所有表名都有前缀名,如:data.Users,我想把前缀名去掉,就变成Users,上网查了一下,
用这个:EXEC sp_rename '旧表名','新表名',改不了,也不知道什么原因

解决方案 »

  1.   

    那个data是一个架构名,表示该表在哪个架构当中,你可以鼠标右键,在表的属性里调整一下架构
      

  2.   

    这个去不掉
    只能改成其他的
    默认一般是dbo
      

  3.   

    sp_changeobjectowner   '对象名(包括架构名)','新架构名'
      

  4.   

    --或者看看这个
    ALTER SCHEMA
      

  5.   

    其实是这样子的,我的数据库在本地上是用SA,创建用户表默认是:dbo.users,传到服务器上使用用户名tzjdata,然后所有的用户表也就变成了tzjdata.users,我现在把它下载回来了,附加到本地,一运行我的网站,就报错:对象名 'Users' 无效。
    现在使用SQL查询分析器执行:select * from users where uid=100001,也会报错,要用select * from tzjdata.users where uid=100001才能查询数据,我真晕,怎么从服务器下载下来就变成这样了,还请高手赐教
      

  6.   


    -- 对于 SQL Server 2000,表所属的架构与所有者是一致的,更改表的所有者即可
    exec sp_changeobjectowner 'data.Users', 'dbo'-- 对于 SQL Server 2005,表所属的架构与所有者是分离的,需要将表移动到指定架构下
    ALTER SCHEMA dbo TRANSFER data.Users;
    -- 为了管理方便,修改表的所有者
    ALTER AUTHORIZATION ON object::data.Users TO SCHEMA OWNER;
      

  7.   

    exec sp_changeobjectowner 'data.Users', 'dbo'
      

  8.   

    那我要改这个数据库中所有用户表的所有者(都改为dbo),有没有相关命令呀
      

  9.   

    那就试试
    exec sp_msforeachtable 'exec sp_changeobjectowner ''?'', ''dbo'' ';
      

  10.   

    通知们 使用我的  包你们满意   exec sp_msforeachtable 'sp_changeobjectowner "?","dbo"'