各位大侠,有个事情不懂如何处理:
我在同一台SQL Server服务器中有两个数据库,DB1,DB2,在DB1中有表T1,在DB2中有表T2,还建了一个数据库的用户U1,该用户的默认数据库是DB1,现在我想建立这样的查询
select * from db1.t1, db.2.t2 where .....
如何做?
如果是在Oracle中可以用同义词,可以用快照等等的技术,但SQL Server如何处理?

解决方案 »

  1.   

    SQL Server也可以用同义词,可以用快照等等的技术
      

  2.   

    实验看看,大概是这样:select * from OPENROWSET('SQLOLEDB',   
      'SERVER=Servername;uid=sa;pwd=***;Database=DB2',
     'T2') as a,T1
    where ..... 
     from db1.t1, db.2.t2 where ..... 
      

  3.   

    解决了,谢谢
    如下:
    Exec sp_droplinkedsrvlogin DBVIP,Null
    Exec sp_dropserver DBVIPEXEC  sp_addlinkedserver
          @server='DBVIP',--被访问的服务器别名 
          @srvproduct='',
          @provider='SQLOLEDB',
          @datasrc='Server2'   --要访问的服务器
    EXEC sp_addlinkedsrvlogin 
         'DBVIP', --被访问的服务器别名
         'false', 
         NULL, 
         'sa', --帐号
         'thankyoubobby' --密码select   *   from DBVIP.pubs.dbo.orders