本帖最后由 huaan011 于 2014-05-17 09:03:52 编辑

解决方案 »

  1.   

    如果 LZ 的用户帐户为数据库拥有者(dbo),则创建的对象会默认放置在 dbo 架构下(如果没有显式指定架构)。解决方法:创建对象时显式指定架构名;修改数据库为其他帐户所有,将此用户帐户加入 db_owner 角色(如果需要这么大的权限)。 
      

  2.   

    登陆名是你自己的登录名还是sa?数据库的用户名的默认架构是hr?然后你创建表的时候用什么账号进行登陆的?如果你用户名是自己的用户名,设置的默认架构为hr,那么你用自己的用户名登陆是,创建表的时候,默认架构就是hr
      

  3.   


    现在问题的关键就是:用户名是自己的用户名,设置的默认架构为hr,用自己的用户名登陆时,创建表的时候,默认架构不是hr,而是dbo,  我一直没折腾明白这点
      

  4.   

    你的答案是2个方法,显示建立应该是会显示出来的,如下面的写法。create table hr.t2(
    id int identity(1,1) , 
    it int
    )
    另外一种就是给直接把这种架构设置为默认的架构,可以给予某库的某用户默认架构。USE [TEST]
    GO
    ALTER USER [Demo] WITH DEFAULT_SCHEMA=[hr]
    GO
    -- 这是将test库下面demo表的默认架构设置为hr或者可以从下图中设置:
    但是前提都是你这个用户是存在的,有对数据库的操作权限。
      

  5.   

    demo是用户,写错了,不好意思。
      

  6.   

    用户名是自己的用户名,设置的默认架构为hr  。这个不应该哇,你设置了默认的架构之后就是你设置的那个默认架构下面的表了。
    楼主确定默认架构为hr? 你是在那个地方看的?
      

  7.   

    6楼 的那几个方法我全部都试过, 创建表的时候不显示指定 架构的时候,创建的表的架构还是 dbo,我猜测是我数据库那里配置的问题,但是一直没找到原因
      

  8.   

    The value of DEFAULT_SCHEMA is ignored if the user is a member of the sysadmin fixed server role. All members of the sysadmin fixed server role have a default schema of dbo.
    终于找到原因了