只要你有该表的SELECT权
select * from sun.testsun testsun select * from dbo.testsun testsun 

解决方案 »

  1.   

    SQL SERVER中没有ORACLE中的固定别名机制 只有在查询的时候建立的动态别名 不过你如果有权限实用其他用户的表,而且其他用户的表名与你的表名没有重复,你就可以直接使用表名,而不需要加入用户名作为前缀。
      

  2.   

    gzhughie(hughie)  兄
    “不过你如果有权限实用其他用户的表,而且其他用户的表名与你的表名没有重复,你就可以直接使用表名,而不需要加入用户名作为前缀。“我在sun用户下新建的testsun, xie有select权限
    xie下肯定没有testsun, 但 select * from testsun 不可以,说 testsun是
    非法对象,加上 sun.testsun就可以, 还需要其他设置吗?对了,我实在sqlserver里面的查询分析器里执行的
      

  3.   

    OpenVMS(半知半解) (  ) 兄select * from sun.testsun testsun  ,可以执行,但又有什么用?我每次都要 这样写成 “sun.testsun testsun”吗? 想直接写 testsun可以吗?
      

  4.   

    让xie拥有DBO的权限,就可以了
      

  5.   

    另外, 如果用sa建立表testsa,即dbo.testsa,
    那么,这个表所有用户只要有select权限,都可以直
    接使用表名testsa,而不需要加入用户名dbo作为前缀。那么,sun下的select是否可以通过权限设置,使别的用户也
    可以直接使用?xiexie
      

  6.   

    gzhughie(hughie) (  ) 兄
    即使直接用sa 用户登陆,一样不能直接查 testsun ,必须是
    sun.testsun才可以。
      

  7.   

    当然有用,还有大用!
      比如有一张发票表A,上面同时有开票员编码和审核员编码字段,而他们有都是用户表B中的用户编码,如果你想只用一个视图或语句就把开票员和审核员查出来,你怎么实现??只有用别名才能实现!请看:
      select b1.用户名称 as 开票员,b2.用户名称 as 审核员 from a 
         left join b b1 on b1.用户编码=a.开票员编码 
         left jion b b2 on b2.用户编码=a.审核员编码 
      
      当然,最常用的就是简化表名称,如果sql语句中的表名称很长,则使用短小的别名可以是你少写很多字。例如:
       select computertable.code ,computertable.name,pricetable.price
    from computertable,pricetable where ....
       和
       select a.code ,a.name,b.price
    from computertable a,pricetable b where ....
       哪个你更短小精悍呢?
      
       
      

  8.   

    另外,sun的角色里包含 dbo, 别人仍旧不能直接查testsun
      

  9.   

    当select * from table中的table前不加用户名时,此时的table要么是当前用户的,否则就只能是dbo的了(如果你有select权限的话)。
    如果你想不输入用户名,而直接输对象名的话,好像只能先建个视了,如下:
    setuser 'xie'
    create view testsa
    as
     select * from sun.testsa
    go
    然后xie用户就可直接使用下面的句子:
    select * from testsa
      

  10.   

    我明白了,一直以为你建表的时候使用了DBO角色。
    你为什么要用用户的名义建表呢,你如果用角色的名义建表的话,只需要把新来的用户加入这个角色之后,就可以拥有对表直接管理的权限。
    而却你也可以通过对角色权限的限制,实现你的安全管理,而却是你的管理很方便,也很灵活。
    现在的处理办法是你新建一个属于DBO角色(或者是你自建的角色)的相同的表,然后以sun的名义把此表中的数据导入到新表中,就可以实现通用的功能。
      

  11.   

    另外如果你实在不愿意麻烦这一次,建个试图也是好主意,不过在增删改的时候辉有点麻烦,为了以后不再麻烦,建议你还是改掉的好。
    你也可以用SQL Server的DTS做这件事情,很方便。
      

  12.   

    gzhughie(hughie) (  兄:如何用 角色的名义建表呢?
    比如我刚新建了一个 标准角色的  角色 “aaa”
    下一步要建表,如何做?谢谢
      

  13.   

    SQL Server中没有像Oracle的那样的synonym(同义字).
    因此你的要求只能通过视图来曲线救国。
      

  14.   

    gzhughie(hughie) (  兄:如何用 角色的名义建表呢?
    比如我刚新建了一个 标准角色的  角色 “aaa”
    下一步要建表,如何做?谢谢
      

  15.   

    如果是指用户应有dbo的角色,那么用户sun xie  都有dbo 的角色阿, 怎么不行呢?